InfoQ

InfoQ

新闻

我的书签

登录注册 以永久保存书签。

该内容已经被标记书签!

标记书签错误,请重试!

Ruby与技术成熟度曲线模型

作者 Werner Schuster 译者 郑柯 发布于 2007年10月10日

领域
架构 & 设计,
语言 & 开发
主题
故事和案例分析 ,
性能和可伸缩性 ,
Ruby ,
Ruby on Rails
最近有一篇关于基于Rails的失败项目的博客文章,引发了一场激烈的辩论。可以预测,将赌注押在与Rails相竞争的技术上,将此作为Rails即将消逝的标志——特别是当这篇文章详细说明考虑重新使用php技术之后。不过,有些人仔细分析了文章中所说的内容。Austin Ziegler指出其实是一些非技术方面的问题导致了项目的失败
他没有意识到现有的专家并不了解这门新技术。他和他的雇员们没有对Ruby有清醒的认识,也许出于这个原因,他们不能深入掌握如何使用Ruby。这种情形下,并不是专家来判断某项技术是否合适,而是由管理层来考虑这项技术能否合用(很抱歉Derek,也许你现在还在亲自写代码,但你更应该适应管理者的角色)。

上面的话指出了这样的事实:该公司的软件都是基于PHP的,所有的开发人员都从事PHP开发。一个完全仰仗PHP开发的软件公司,使用Ruby on Rails重写软件,产生问题是必然的。更特别要指出的是,原博客文章中明确写道,公司只有一个全职Rails开发人员,此外再加上博客文章的作者;而且作者明确表明他更喜欢使用PHP工作,并且公司的其他开发人员以及公司的软件都是基于PHP的。

Austin指出的另外一个问题是:这个项目是针对现有软件进行重新开发。

Derek执行这个项目的方式,是希望自下而上、整体上全部重新开发,并且一次部署完成,而不是考虑将其划分为几个阶段来进行。实际上在绝大多数情况下,每次只在系统中寻找一个切入点,替换掉出现问题的部分,这样做总是可行的。(译者注:此处表明的意思是,像Derek那样希望一步到位的做法,成功的几率很低。)到最后,这也会是Rails专家将会告诉你的:一次只替换一个模块,每次都使用不同的代码库。以REST-ful服务的方式置入新的部分。不要让所有的系统代码都构建在单一的数据库架构(database schema)之上。

很多人都已经表达过类似的看法。David Heinemeier Hansson点明Chad Fowler的系列文章“The Big Rewrite”中也说明了重新开发项目的细节问题。

在这次争论中,宣传周期(hype cycle)的问题也被大家提了出来宣传周期描述的是产品或技术在市场中引起轰动的过程。Rails的迅速兴起表明,宣传是它如此快就获得现在这样的普及和知名度的一个重要因素。其他许多技术也经历了类似的途径,比如Java、XML以及AJAX技术。

在宣传周期中,某项技术在引起人们热切期待之后,随之而来的就是“幻觉破灭期(Trough of Disillusionment)”。此时对技术的实际应用,会发现一些问题,并抹去这门技术上的神秘面纱。它也会跟在“期望膨胀期(Peak of Inflated Expectations)”之后出现,在“期望膨胀期”中,一些使用者可能会将这门技术视为银弹,能够解决所有的问题。抱有过高的期望也许能够解释为什么一个仅使用PHP的工作室会考虑用Rails重新开发他们的软件。

虽然有些人认为这样的文章对Ruby会产生不良影响,历史却告诉我们其他的技术也经历过类似的发展阶段。Java即是一例。在上世纪90年代后期,一些诸如Corel Office for Java这样的大型公开项目的失败,或是Netscape的Javagator项目(Netscape Navigator的Java重写版本)的终止,使得Java技术也走过了这样的发展时期。

有人将此次争论视为Ruby的反弹,虽然这看起来有些迟。今年早些时候,一个规模更大的、更加公开的基于Ruby的项目,似乎将以失败而告终。Twitter,一个搭建于Ruby之上信息发布系统,曾遇到严重的性能问题。有评论指出可能是Ruby解释器的性能导致了问题的发生,这也掀起了波澜,并引起对Ruby的关注。

现在,6个月之后,事情看起来有些不一样了。譬如:Twitter仍然处于在线运营当中,并且已经解决了性能问题,目前仍以Ruby实现。问题的解决方案记录在案,并且所有的人都能通过网络访问,比如与“提升Twitter的可伸缩性”“浅析如何扩大规模”这两个谈话相关的在线演示。总体上看,问题实际上是由于架构方面的不完善引起的。

看英文原文:Ruby and the hype cycle


译者简介:郑柯,目前任职《程序员》杂志社高级编辑,有志于在中国的软件开发业界推广Agile的理念和方法论,笃信以人为本,关注Ruby,关注敏捷,关注人。参与InfoQ中文站内容建设,请邮件至china-editorial@infoq.com

译者 郑柯 InfoQ中文站总编。做过开发,当过PM,干过销售,搞过市场,最终还是回到媒体。实用的理想主义者,相信:每天改变一点点,这个世界会更好。

深度内容

大规模视频网站的计费与流量管理

本次分享将会就大规模视频网站的计费与流量管理这个话题,从操作层面细细进行讲解和分析,为系统工程师们揭示平日里我们没有关心的另一些内容。同时也希望本次分享能揭示行业中的一些“潜规则”,让互联网行业的流量与带宽管理更为开放与简洁。
本次演讲视频录制于QCon杭州2011

专访Jeffrey Richter:Windows 8是微软的重中之重

Jeffrey Richter以其多本Windows核心技术的经典著作而闻名,同时,他深入掌握微软的.NET等一系列核心技术,2012年1月,Jeffrey Richter在北京接受了InfoQ中文站的专访,谈到Windows 8和WinRT编程,并就异步编程、Windows编程中的可扩展性、性能和安全性方面给出自己的建议。

应用云平台的可用性——从新浪SAE看云平台设计

云计算平台的可用性,相比传统互联网服务而言,更加复杂和困难,也更具有挑战性。本文借助新浪SAE云平台为读者讲述了云平台可用性的定义、如何打造高可用的平台,以及对云计算的用户提出了建议。

JVM定制改进 @ 淘宝

淘宝高度重视Java平台的健康发展,组建了一个团队专注于Java平台的底层部分的性能、功能与稳定性改进;工作主要基于OpenJDK中的HotSpot VM开展,其中一些通用的功能随后也会逐渐反馈给OpenJDK社区。希望能与使用Java平台开发应用的大家交流经验。
本次演讲视频录制于QCon杭州2011

"伤得起"的云计算应用——对云端应用之架构的思考

2011年4月21日至22日是值得云计算从业者纪念的日子。Amazon的IaaS服务出现故障,导致许多商业网站的服务中断,影响非常严重。作为云计算用户,我们需要思考的是,如何保证即便在云服务不可用的情况,我们的应用架构仍然能够屹立不倒?本文正是站在云计算用户的角度试图探讨这一问题。

让交付的速度跟上思考的速度

12人的技术团队,4组刀片服务器,每月20亿的访问量,每日1次准时部署,99.9%的可用性。这可能吗?当然。想知道如何做的吗?百姓网将与您分享他们在DevOps实践过程中的经验和技巧。
本次演讲视频录制于QCon杭州2011

架构之路——穿行在产品和业务之间

篱笆作为一家起源于社区的电子商务公司,反映到技术层面就是同时要面对产品和业务,以及经营战略的变化调整。如何在产品和业务的夹缝之间完成技术架构的抽象与平衡,寻找更有效的价值定位,这当中有些经验教训和个人感悟愿与众人分享。
本次演讲视频录制于QCon杭州2011

特性注入:成功三部曲

本文将对特性注入以及相关方法做一个扫盲性的介绍。我们会解释这个框架的关键要素,并附上实例来证实它们。为了让文章保持相对较短,我们不会深入到某个工具或方法中,而是会给出一些参考资料,以便大家做进一步的研究。