(本文发表于《程序员》2007年第1期)
<meta content="text/html; charset=utf-8" http-equiv="CONTENT-TYPE">
<meta content="OpenOffice.org 2.0 (Linux)" name="GENERATOR">
<meta content="Jeff Xiong" name="AUTHOR">
<meta content="20061209;16464500" name="CREATED">
<meta content="16010101;8042600" name="CHANGED">
<style type="text/css">
<!--
@page { size: 8.5in 11in; margin: 0.79in }
P { margin-bottom: 0.08in }
-->
</style>
16.5亿。相信每个从事web开发的同行现在都不会这个数字陌生。10月9日,Google用价值16.5亿美金的股票买下了YouTube.com。对于所有怀揣web 2.0梦想的从业者,这起并购案如同一支强心针,大家仿佛又看到了一夜成名或者一夜暴富的机会。于是,作为淘金必须的镐头与水桶,web开发的新技术重新受到了广泛的关注。
从web开发者的角度回顾2006年,首先出现在我们记忆中的是AJAX——从技术层面上来说,这个词是“Asynchronous Javascript And Xml”的首字目缩写。但对于更多并不关心什么是“异步”、“Javascript”或者“XML”的网站用户来说,AJAX更大程度上意味着“Making Browsers Suck Less”——就像GMail那样,在HTML页面上提供丰富的交互能力。Web 2.0的一大特点是“用户创造内容”,更便利的交互就意味着用户的创作热情更能得到鼓励,所以AJAX成为web 2.0的特征之一也就是顺理成章之事了。
说AJAX是2006年的热潮并非空穴来风。在Amazon发布的“2006年最受读者喜爱的计算机及网络类图书”列表中,一本《AJAX in Action》高居榜首——负责翻译其中文版《AJAX实战》的AjaxCn.org也是国内实践与推广AJAX的先驱。紧随其后的是一本《精通CSS》,同样与web开发有着莫大的关系。尽管很多专家认为基于JavaScript、又饱受浏览器兼容问题之苦的AJAX只是web界面开发的“过渡性技术”,但不争的事实是:越来越多的网站采用或即将采用AJAX为他们的用户提供更便利的使用体验。而随着Prototype、Dojo、script.aculo.us等一批AJAX框架的成熟,以及一批AJAX图书的问世,AJAX也逐渐成为了一种成熟可靠的技术——或者说,成为了web开发者们不可或缺的工具之一。
Web 2.0的实践家们一直相信着“长尾理论”——所谓“畅销”,在市场的统计图表上,其实只占前面的一部分,而在“头部”之后,还有一条长长的“尾巴”;将长尾上所聚集的商业潜能进行加总,威力往往轻松超越畅销榜上的前十名。不过这条长尾巴可不是那么容易抓住的:利基市场的消费习惯此前几乎没人关注,更遑论深入调研,所以网站的经营者更多的时候只能“摸着石头过河”——从一个模糊的理念入手,从一个简单的beta版本开始运营,根据用户的反馈不断调整网站的功能乃至经营模式。所以这条长尾巴也给站长们提出了一个新的课题:当那些热情的用户尝试了你的网站、并且告诉你他们的需求,你是否能够及时作出调整?或者落实到技术面,你所选择的技术和开发工具是否允许你及时作出调整?
这正是Ruby on Rails大受青睐的原因所在。很多人在接触Rails之后的第一感觉是:它能够很简单地开发web应用。不管使用Java还是.NET,越来越多的开发者开始深切地感到:这些“大一统”的技术平台虽然适用于企业级开发,在面对互联网应用时却多少有些力不从心。就在此时,Rails从天而降,而且它要简单得多。但光有简单是不够的。很多开发真实网站应用的专业软件开发者深入研究了Rails,并发现这不仅仅是一个快速开发网站的工具——它融汇了大量web应用开发的知识,这些知识从根本上降低了web开发的门槛。
譬如说,所有的Rails应用都采用了“模型-视图-控制器”(Model-View-Controller,MVC)架构。Java开发者都很熟悉MVC框架,例如Tapestry和Struts。但Rails把MVC贯彻得更彻底:当你用Rails开发时,每一块代码该放在什么地方都有一定之规,代码之间都按照规定的方式进行交互。从一开始,Rails就已经帮你准备好了应用程序的骨架,即便还没有编写任何一行应用代码。同样是MVC框架,Struts也允许你实现各种各样的功能,但那只是“能力”,却不是“知识”。你可以有100种方式来组织你的web应用,Rails则把一种最适用的方式直接放到你的手上。
即便在J2EE的世界里,也有很多开发者曾经尝试把自己的经验揉合到框架设计中,但Java语言本身的静态特质使得人们不得不借助XML来描述大量信息——说得俗点,Java程序怎么写都是Java程序。而Rails采用了Ruby语言。Ruby很简洁,却又不致简练得难以理解;而且Ruby的语法非常灵活,开发者甚至可以根据需要创造出自己的语法。使用Ruby,你可以自然而清晰地表述自己的想法,因此Ruby程序很容易编写,而且放上几个月之后也很容易读懂——这是非常重要的。
开发者们还会在Rails中发现另一件事:这个框架的背后有一套完整的哲学支撑。Rails的设计始终遵循两个核心原则:DRY和惯例重于配置(convention over configuration)。DRY也就是“不要重复你自己”(Don't Repeat Yourself)的缩写:系统中的每项知识只应该在一个地方描述。借助Ruby的强大威力,Rails实现了这一目标。在Rails应用程序中,你几乎不会看到重复的代码,每件事情都只需要说一遍——你只要在符合MVC架构惯例的某个地方说一遍,以后就不必再重复了。用惯其他web框架的程序员大多有这样的经历:只要对数据库结构做一点点修改,就必须同时修改好几处代码。对他们而言,DRY的哲学不啻是一大福音。惯例重于配置也同样重要。对于“如何将应用程序组装起来”这件事,Rails自有一套默认的规则——相当有道理的一套规则。只要遵循命名惯例,编写一个Rails应用程序所需的代码量比起典型的、使用XML配置的Java web应用要少得多。
在2006年里,国内的一批web 2.0开拓者跟随着37Signals等先行者的步伐,开始了对Ruby on Rails的尝试。包括书签网站“顶啊”(http://dingr.com)、日程安排网站“易做”(http://www.ezuo.com)、Iease(http://www.iease.com.cn)和“发生网”(http://www.8sheng.com)、文件存储网站51dir(http://www.51dir.com)、相册网站Soopie(http://soopie.com)、音乐评论网站“乐道”(http://www.likenote.com)、团队协作网站Trikr(http://www.trikr.net)等一批新兴网站在内的中国web 2.0创业者们选择用Rails来开发自己的网站——也许你可以说我们提到这些名字仅仅是因为他们采用了Rails,但这又何尝不是他们能够在这个残酷的世界得以生存发展的原因呢?除了这些初创网站,天涯社区、豆瓣网等成熟网站也对Rails表现出浓厚的兴趣,并开始在部分功能的开发中采用。
JavaEye是国内著名的软件开发技术站点,其2.0版本也采用了Ruby on Rails开发。在接受InfoQ网站采访时,JavaEye的站长范凯表示:相对于传统的J2EE技术平台,他的开发团队采用Ruby on Rails获得了至少5倍的开发效率提升,JavaEye 2.0网站能够在不到三个月的时间内上线便是明证。但范凯同时也指出,这种高效率带来的不仅仅是机遇,同时也是对团队的挑战——如何充分发挥Rails的开发速度,如何在高速度下保持团队成员之间、团队与客户的紧密协作,都是他们面临的新问题。说得直白一点,Rails让这支团队变得如此高效,如何让开发过程和管理制度不致成为这支高效团队的绊脚石,这本身就是软件工程从未遇到过的挑战。敏捷方法提出了一套基于快速迭代的实践指导,但对于熟练掌握Rails的团队来说,有很多问题就连敏捷方法也没有好的解决办法——换句话说,敏捷方法只是Rails开发者的基本条件,他们还需要继续总结开发过程和项目管理方面的最佳实践。
尽管如此,Rails最大的意义在于它给“开发web应用的难度”这件事情划下了一条线。从此以后,不管来自微软、Sun、IBM还是BEA,任何一个新的web开发工具都必须至少具备与Rails相当的效率——换句话说,如果一个新工具开发网站所需的时间比Rails还长、代码量比Rails还多,它就会被挑剔的网站开发者们直接抛弃——或者干脆就不会出现。而在另一方面,对于开发者和创业者来说,开发一个网站的难度再也不会超过Agile Web Development with Rails书中的示例,这不啻是一大福音——也是一大挑战,原因是显而易见的。
在这篇文章的最后,我想给大家看另一个数字:160——目前中国共有大约160家视频网站,大多是在模仿YouTube.com的模式。新技术能给用户带来良好的交互体验,也能大大提升创业者的开发效率,但没有办法告诉他们“应该做什么”。2006年,web 2.0的热潮让很多人重新做起了网站创业梦,包括AJAX和Ruby on Rails在内的新技术帮助他们实践自己的梦想,在此我祝愿他们都能找到属于自己的长尾巴,祝他们都能梦想成真。
分享到:
相关推荐
基于采掘交锋条件下巷道围岩稳定性的控制问题,通过分析采掘交锋巷道应力分布特征以及现场工程实例,对采掘交锋巷道掘进过程中不同阶段的围岩稳定性进行了研究。结果表明:"合理的煤柱宽度、精准的停掘位置、分区域的...
具体的安全管理方法包括交锋前的准备工作,即加强技术互通,确保各队组间的信息共享和技术沟通。技术人员需根据具体情况确定开工的相对位置和时间,以确保交锋过程中的安全性。这些措施都是为了防止在交锋过程中发生...
通达信指标公式源码操盘王-主力雷达-主力交锋 ...通达信指标公式源码操盘王-主力雷达-主力交锋是一种功能强大且实践效果良好的技术指标,能够帮助投资者和交易者更好地了解股票市场,提高交易效率和投资回报。
通达信操盘王主力雷达主力交锋是一主二副三个看盘指标源码,主要用于股票技术分析,通过公式源码实现了多种技术指标的计算和可视化。 1. 移动平均线指标(MA) 移 动 平 均 线 指 标(MA) 是 一 种 常 用 的 技 ...
"通达信指标公式源码主力交锋.doc"是通达信用户为了分析市场中的主力动向,自编的一种技术指标公式。这个公式通过计算一系列的技术参数来揭示买卖双方的力量对比,帮助投资者判断市场趋势。 在公式中,`VUR1`定义了...
通达信指标公式源码多空交锋副图 通达信指标公式源码多空交锋副图是一个基于通达信平台的指标公式,用于生成多空交锋副图。该公式包含多个变量和指标,用于计算和比较多空强度。 变量 VAR1D 和 VAR1E 是基于收盘价...
金钱不能买什么:金钱与公正的正面交锋、.pdf
【C语言】地空交锋编程体验
“阿拉斯加交锋提速信创”这部分描述可能是指中美之间的科技竞争,特别是以美国阿拉斯加州为代表的西方国家对我国信息技术创新(简称“信创”)的挑战。信创是推动我国信息化发展、保障信息安全的重要战略,旨在通过...
综上所述,通达信的“多空交锋分时”指标是一个综合性的技术分析工具,它结合了多个技术指标,以帮助投资者在实时交易中更好地理解和预测市场的动态,从而制定更有效的交易策略。通过学习和应用这个指标,投资者可以...
如视觉传达设计注重信息的传达和视觉效果,环境艺术设计关注空间规划与用户体验,产品设计强调功能与美感的结合,服装设计关乎时尚趋势和人体工程学,数字媒体艺术则融合了技术与艺术。 在这些文档中,我们可以期待...
交锋2015百人会——新能源客车饕餮盛宴.pdf
通达信指标——多空交锋操盘手(副图).doc
高中历史之历史百科“三教交锋”中华文化的融合与发展素材
计算机应用行业点评报告:电信招标国产CPU占比超三成,阿拉斯加交锋提速信创.pdf
初中语文语文论文理想与现实的交锋__学生“成年职位”竞选讲演
NAND Flash是一种非易失性存储技术,广泛应用于移动设备、固态硬盘等,因其高容量和快速读写速度。NOR Flash则主要用于代码存储,在嵌入式系统和微控制器中常见。旺宏和华邦等台湾企业已在NOR Flash领域有一定市场...
物流行业跟踪分析:韵达11月份额同比提2pcts,龙头交锋加速格局集中、客户分群-1219-广发证券-11页.pdf