Ruby on Rails创始人DHH:架构是将复杂的问题简单化
51CTO开发频道年终巨献:架构师最怕程序员知道的十件事
他在2005年获得Google和O'Reilly举办的OSCON最佳Hacker大奖;2006年,他获得了年度最佳Web开发工具震撼大奖(Jolt Development Tools);现在,他创建的框架成为Web开发的主流技术,并被Twitter、Hulu等大型Web2.0网站所采用;由于他的框架采用Ruby开发,从侧面推动了Ruby语言的发展,并使Sun紧急上马推出JRuby。
David Heinemeier Hansson
他就是Ruby on Rails的创始人David Heinemeier Hansson;一般,Ruby程序员将Ruby on Rails称为RoR,将David Heinemeier Hansson称为DHH。
37signals和Basecamp
2004年,哥本哈根商学院的大三学生DHH接到一个来自美国芝加哥的电话,他在37signals公司的合伙人计划上马一个叫Basecamp的项目;和37signals的其他项目一样,Basecamp也是一个基于Web的项目,它试图解决项目因缺少图表、曲线图或者报告而失败的现象,简单的说,Basecamp是一个沟通和协作平台;唯一不同的是,37signals之前都是为客户开发的外包项目,Basecamp将是他们第一个自己的产品。
听上去是个不错的项目,但问题是37signals目前只有两个优秀的设计师和一个半路出家的程序员,而目前,这个程序员还在大洋彼岸的哥本哈根拿着电话暗自兴奋。
几天后,带着两年PHP开发经验和学校里学来的一点J2EE课程,DHH来到美国;他将面对的是一个极富挑战的项目,繁琐的需求、众多的功能模块、复杂的接口和紧迫的交付日期。
把复杂的问题简单化
DHH很自信,他知道自己没有出色的数学天赋,没有丰富的项目经验,没有大师级的计算机功底;但他对自己的另一项能力很自信,把复杂的问题简单化。早在编写PHP程序时DHH就开发过一套框架,目的是使PHP能在项目中变得简洁快速,将程序的界面、控制和数据分离开来,方便团队间的协作和维护。
项目之初,DHH试图使用自己的PHP框架进行Basecamp的开发,但没过几天DHH就发现了一些问题:他之前的PHP快速框架一直用于一些流程明确,指向专一的Web项目;但Basecamp不同,作为一个沟通协作平台,用户角色进入后会产生一些复杂甚至意想不到的工作流;他甚至开始质疑PHP的能力是否适合这样的项目,PHP在语言层的一些天性使其在高互动高响应的系统里显得笨拙而复杂。对编程开始感到愤怒
Ruby
Ruby的开发效率高的惊人,更重要的是它的语法简洁优雅,DHH看着自己用Ruby一周时间写出的功能比用PHP做一个月还要多;之后,他开始尝试将自己的PHP框架用Ruby做移植,并在其中加上J2EE的一些东西。很快,他将自己的兴奋传达到37signals并说服Basecamp团队使用Ruby进行开发。
两个月后,DHH开发出了基于Ruby的框架;又过了两个月,整个Basecamp产品完成。好事接二连三,在DHH对自己架构的框架异常兴奋的同时,37signals的第一个产品面Basecamp一发布就引起了轰动,全世界40多个国家的人值得开始使用,当时,有人认为它是世界是最好的Web应用程序。
同时,Basecamp也引起了开发界的关注,众多Web工程师试图找出BaseCamp快速响应、安全稳定的秘密。DHH决定将Ruby框架从Basecamp里剥离出来,让更多人应用自己架构的框架并受益于高开发效率,这个框架就是Rails。
Ruby on Rails的简单之道
DHH对Rails的解释是“最近的一条路”。从Rails这个名字我们可以看出,DHH希望软件开发可以沿着一个正确的轨迹不断向前,告别复杂的左转右转和讨厌的红灯;他也是按照这样的想法架构整个Rails。如果你使用过Rails,其脚手架的功能一定让你兴奋。我们可以通过Rails脚手架创建一套样式的行为和模板,它们可以让你在具体的模型中操纵数据异常简单,同时,脚手架还提供了允许在数据库中插入、更新和删除记录的方法与页面。
Ruby on Rails创始人DHH