`
liuming
  • 浏览: 163877 次
  • 性别: Icon_minigender_1
  • 来自: 蛮夷之地
社区版块
存档分类
最新评论

厨师能不能和服务员抢饭碗:界面、逻辑、数据的那些事儿(中)

阅读更多

上一篇文章 中,我由七月十五 引发口水战的两篇文章做引,说了应用层是怎么能和数据存储发生竞争关系的。而在本篇中,我将说说应用层又是怎么和交互层发生竞争关系的。或者按七月十五的说法,是前端技术怎么和后端技术发生一种隐性的竞争关系的。

 

上一篇中我提到了互联网革命所产生的影响是怎么把旧有的企业软件开发模式给颠覆掉的。再后来的事,中国也参与进来了,相信大家都清楚了。可是有了互联网革命还不够,还要再来一个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社区的杯具就在于听取了不应该听取的意见而没有听取该听取的意见。我将在下篇中以这个作为引子,并结合一点点历史来展讨论在我们在面对技术变革中所应该持有的有效的态度和立场。

3
1
分享到:
评论
1 楼 七月十五 2010-05-28  

相关推荐

Global site tag (gtag.js) - Google Analytics