在上一篇文章
中,我由七月十五
引发口水战的两篇文章做引,说了应用层是怎么能和数据存储发生竞争关系的。而在本篇中,我将说说应用层又是怎么和交互层发生竞争关系的。或者按七月十五的说法,是前端技术怎么和后端技术发生一种隐性的竞争关系的。
上一篇中我提到了互联网革命所产生的影响是怎么把旧有的企业软件开发模式给颠覆掉的。再后来的事,中国也参与进来了,相信大家都清楚了。可是有了互联网革命还不够,还要再来一个2.0革命,看似两兄弟,但却悄悄地把之前的互联网革命的命给革掉了。IT产业中每一次的大的变革都会有它的名字,什么.com什么web 2.0的,其实都只一个代号而已。但当你纵观整个计算机业和IT业的历史,把它们的共性归纳出来,会发现归根到底就是把人类和最底层的电子电路隔离开来的历史。自始至终,每一次变革都会以继承前辈的理念为前提,但却以颠覆的前辈产物为代价,而这些所有的变革的方向是一致的:把底层的机器包装得更易于人类去使用。而每一次成功的变革,都会在把机器包装得更亲近人类这个方面做得比以前要好,而且最重要的,是其着重点,都会向更接近人类的那部份转移。
而最近的一次变革,人们已经开始意识到:经过几十年的发展我们的生产力虽然还不是无敌的,但是已经强大到足以考虑让计算机系统去适应人而不是人去适应计算机系统的时候了。以前那个只有科学家才能用计算机的年代所遗留下来的观念--人去学用计算机的观念,是时候退出历史舞台了。这个时候,曾一直游离在行业理论边缘的人机交互重新被提上议程。题外话:一项理论的提出到实际应用需要十到十五年时候是很正常的事,比如说REST。这种趋势所导致的结果,就是很多软件系统的开发重心开始向前端和人类交互的部份转移。更有甚者认为,要是大部份的人在使用一个应用系统时不能够快速上手,那么就是这个系统的错而不是人的错。历史总是披着不同的外衣,一次又一次地重演。以前把数据存储拉下王位的并当了老大的应用层,现在的核心地位受到了来自前端强有力的挑战。正如上篇所说的,这种挑战并不是说前端要消灭应用层,而是说前端要推倒应用层的核心地位,让应用层变成前端的仆人,为前端服务。
前端之所以叫前端,那是因为它是最接近人类的那部份,是人类与整个系统交互的门面。特别在商业应用中,人们发现这门面的好坏对整个系统的价值所产生的影响是那么的直接,那么的显而易见。比如淘宝有次改进了一下界面,客服接到的电话量哐当一下掉下去了,又如另一个电子商务站点把结帐按钮位置调整了一下,交易量马上上去2%,你说这种事让各位老板知道,他们能不关注门面么?更实现地说是,你后面的运作再漂亮或者再恶心,所产生的影响都是间接的。正如你去五星级大酒店吃饭觉得很有面子,根本不会知道厨房里有人向你的菜里吐过口水。由于前端的强大的影响力,就像上一段所说的,使得开发资源和技术自然而然地向前端倾斜和转移。特别是在逐利的商业应用中,金玉其外是关键,败絮其中是小事。
还有一个非常重要的趋势是,联网设备的多元化和数据交互方式的标准化。以前要上网,你就得找台式电脑,偶尔拿着一部手提电脑就觉得倍有面子。现在你要拿着手提上网,人家拿iPhone的还鄙视你土掉渣了。由于各种不同的客户端都有自己独有的运作方式,所以对于数据的呈现,要是还是像以前那样让应用层渲染的话,那么应用层将会显得那么的力不从心。况且,现在的客户端也越来越强大,一个手持设备,除了屏幕尺寸外,其它的功能几乎可以和台式机笔记本一分高下了。这时你就要考虑不如我应用层自己不做这事了,我把数据接口开放给你,管你是什么东西,反正你那么牛逼,你爱怎么显示就怎么显示吧。还有一个是整个互联网上的联系越来越多,不仅是人于机器之间的,还有很多是机器与机器之间的。你看现在不很多在搞开放平台么。当然这些开放平台有的是在演戏有的是在玩真的,不过可以肯定的一个现实是,你以前的系统是直接把你的数据呈现给最终的人类用户,而现在你还得考虑以接口的形式把这些数据向其它的系统提供。于是就出现了数据互换标准化的现象,也就是七月十五在他文章中所说的服务化,各种系统之间通过约定的协议进行对话。这种现象听上去似乎是强化了应用层的地位,但其实正好相反,是弱化了应用层地位,因为它把很多的以前得在应用层实现的呈现逻辑往前端转移了。
由于以前的应用系统,以及开发这些系统的技术,比如说七月十五具体谈到的PHP,所考虑和解决是以前的问题。以前的问题是前后不分家的,也就是具体的呈现逻辑是属于业务逻辑的一部份,必须由应用层来做总管。所以像PHP这样的技术在那个时候是很有优势的,因为它的实现了很多对数据呈现方式进行精确控制的功能(具体来说是函数和设置)。但现在由于这些精细的控制从应用中分离出去了,相当于把PHP的半只手给砍掉了,那么对PHP优势的削弱也是必然的。不过这种趋势不止削弱了PHP,其实也削弱了任何其它的应用层开发技术中对数据呈现控制的优势。比如Java对前端控制的相关技术也被打得溃不成军,开发人员不是转其它阵营,就是把Java撤到最后方去处理大型数据以及接口去了。Java以前并不是搞前端控制的,只是看着前面热了就强行插入,但后来发现不行了还可以退回老家去。可惜和Java不一样的是,由于PHP把一半的优势压在了前端控制上,当这个优势丧失时,所表现出来的影响就比Java大得多很大了。
另一个是现在应用层更加集中地处理业务逻辑和数据整理,以及高并发的任务。但是当系统变得复杂和庞大时,PHP的缺点就很容易暴露出来了。这里的问题并不是说PHP做不到,而是说PHP懒散的结构很容易普通和初级水平的开发人员写出垃级代码,而能够把PHP写得出神入化的人相对来说还是占少数。可能有人会说哪个哪个大企业就是用PHP的,但这是带有误导性质的不完整说法,是偷换概念,其实把句话里的PHP这个词换成任何一种技术,都是成立的。关键点在于人家有大牛有资金在撑着,人家是把PHP编译成静态机器码来运行、人家是请二十个人来做一个模块从而可以不调用PHP的扩展函数、人家把PHP解释器的进行精简优化后重新编译来用、人家是用了几层的缓冲来顶住压力,或者人家只是把PHP用在一个日访问量只有几万的小业务上面。
本篇简单地讨论了前端技术是怎么在当前的形势下削弱后端的核心地位的。虽然现在讨化后端是否王位不保还为时尚早,但是可以看到和肯定的趋势是,重点在不断地前移,向人类接近。离机器更近的东西在这些年的发展中正在被不断完善,所以人们开始更加关注自己眼前所见的事情。
七月十五在他的文章中提到 写道
PHPer的现状是不思考,不实践,全作愤怒状,听不进任何意见和建议。心态决定思维,思维准定行为,行为决定结果。盲目自大、鼠目寸光、杯空自满的心态,我想这才是php倒掉的真正原因。
对于这种说法,我持保留态度。因为只说出了问题的一半,而没有说出另一半。我觉得问题的另一半在于有些意见是应该听取的,而有些意见是不应该听取的。但PHP社区的杯具就在于听取了不应该听取的意见而没有听取该听取的意见。我将在下篇中以这个作为引子,并结合一点点历史来展讨论在我们在面对技术变革中所应该持有的有效的态度和立场。
分享到:
相关推荐
【标题】"Hotel+厨师、服务员.zip"是一个针对初学Java学者设计的项目,它结合了酒店管理和餐饮人员的角色,提供了实践SSM(Spring、SpringMVC、MyBatis)框架学习的机会。在这个项目中,你可以了解到如何在实际场景...
为了防止多个厨师同时修改菜单,我们可以使用互斥锁来确保任何时候只有一个厨师能操作菜单。 2. **条件变量**:当顾客下单后,需要等待食物准备好才能消费。我们可以设置一个条件变量,厨师完成食物后通知顾客,...
该数据集分为二个部分,JPEGImages和Annotations.JPEGImages文件夹中有6400+张各种场景的图像,共1w+个标注框. 并对每张图片使用labelimg做了人工标注,标注对应的xml文件放在了Annotations文件夹中. 本数据集图片清晰,...
数据集格式:Pascal VOC格式(不包含分割的txt文件,仅仅包含jpg图片和对应的xml) 图片数量(jpg文件个数):2090 标注数量(xml文件个数):2090 标注类别数:2 标注类别名称:["chef hat","head"] 每个类别标注的框数: ...
10. 报告的易理解性与可访问性:为了让非IT专业人员也能够理解和使用报告,报告制作中应当考虑数据的可视化和用户界面设计,这涉及到人机交互界面设计知识。 总而言之,从给出的文件内容来看,可以了解到IT技术在...
3. 不同企业类型的薪酬对比:文档中提到了不同企业类型,包括外商独资企业、合资企业、本地民营企业和国有企业,并且列出了这些企业类型中厨师岗位的薪酬数据。这可以为厨师职业的薪酬定位提供参考,了解不同企业...
- 数据结构如服务员、房间、餐桌、菜、厨师等,定义了这些实体的属性和关系。 6. **数据流和处理过程**: - 数据流描述了数据在系统中的流动,如服务员信息的变更、菜单的查询等。 - 处理过程涵盖了顾客的点菜、...
2. 薪酬数据分析:报告中提到的大数据系统每年处理超过3000万条薪酬数据,覆盖200个行业和180多个城市和地区,这说明报告基于广泛的薪酬数据进行分析,确保了数据的全面性和可靠性。 3. 行业薪酬介绍:文档内容提到...
数据集标签分2类:分别是“戴厨师帽”和“不戴厨师帽”。适用各种目标检测算法,如yolo系列算法,数据图片包含多种厨师帽,多种实际后厨场景拍摄,数据集质量可靠,纯手工标注,精确无误,经测试YOLOv5准确率达到98%...
中小餐厅服务员厨师管理制度汇编.doc
5. **厨师_弹出提示类库**:在移动应用开发中,弹出提示是必不可少的元素,用于向用户提供信息、警告或确认。此库提供了各种弹出提示的样式和功能,让开发者可以自定义提示样式,以适应不同的应用场景。 6. **厨师_...
餐饮行业的绩效考核是衡量员工工作表现和贡献的重要工具,它涵盖了店长、前厅领班、吧台、厨师长、后厨、服务员、收银员、库管、后勤等多个岗位。这份考核表旨在通过具体指标评估各岗位的工作效率和服务质量,以提升...
Java开发的点菜系统是一个典型的业务流程管理系统,它涉及到多个外部实体,如顾客、服务员、厨师、收银员和系统管理员,以及多个功能模块。以下是该系统的主要知识点和流程: 1. **外部实体**: - **顾客**:发起...
数据集-目标检测系列- 帽子 厨师帽 检测数据集 chef_hat >> DataBall 标注文件格式:xml 项目地址:https://github.com/XIAN-HHappy/ultralytics-yolo-webui 通过webui 方式对ultralytics 的 detect 检测任务 ...
- **业务逻辑层**相当于餐厅的服务员将订单交给厨师处理:厨师根据订单准备食物,即业务逻辑层根据接收到的数据处理逻辑,然后将处理结果传递给数据访问层或用户界面层。 - **数据访问层**相当于厨师准备食材和烹饪...
高级服务员是餐饮业中不可或缺的角色,他们的主要职责是为顾客提供优质、高效的服务,确保顾客在就餐过程中的体验满意度。以下是对高级服务员岗位职责的详细解析: 1. **服务流程掌握**:高级服务员需熟悉中餐服务...
系统采用了C/S架构,客户端负责用户界面和数据库访问,服务器端处理数据服务。 在数据存储部分,我们看到服务员信息、厨师信息、房间信息等数据存储的更新和查询,以及点菜信息、做菜信息、上菜信息等业务流程相关...
【餐饮业绩效考核表】是餐饮企业用于评估员工工作表现的重要工具,主要涵盖了店长、前厅领班、吧台、厨师长、后厨、服务员、收银员、库管和后勤等多个岗位。考核表旨在确保各个岗位的员工能够有效地执行职责,提高...
最后,系统在Windows 2000/xp/Linux环境下运行,提供前端界面供用户操作,后台数据库则负责存储和处理数据,实现服务员信息管理、菜单管理、厨师管理、房间管理、餐桌管理等功能,以及点菜、结账等业务流程的自动化...