1/10/2007

「易遊」使用 Ruby on Rails 的原因


易遊是一個對岸開發,類似 delicious 的網站,他們公開宣佈使用 Ruby on Rails 來開發全部程式。並且也一一公布一些使用 Ruby on Rails 的原因。



他們使用的是 Linux + Apache 2.2 + Ruby on Rails(九成九是 Mongrel 啦)+ MySQL 5.0。一共六個人,採 xp 的開發方式,大概開發了三個月左右。

至於為何要使用 Ruby on Rails 呢?他們提出了相當接近我的想法的說法

我们inu的开发团队原本基本上都是Java的忠实追随者。从Struts + JDBC到Spring + Hibernate,我们一直都在尝试寻找一种比较成熟而又快速敏捷的Web解决方案。

在inu网络收藏夹的项目开始,我们团队内部也展开了激烈的讨论,究竟Java的严谨框架和卓越安全性是否能给inu带来我们所期望的生命力? 经过深入的学习和调查后,我们认为像Ruby这样的动态语言可能较之静态语言更适合我们的要求。

首先,硬件本身的进步给动态语言创造了发展的基础,在硬件比较弱的年代里,语言本身执行的速度是一个项目的根本,因此C和C++这样的语言得以广泛使用。 然而如今,当硬件的成长遵循摩尔定律突飞猛进的时代,语言本身的执行速度越来越不是一个项目所担心的根本。像Ruby这样的动态语言所带来前所未有的敏捷 性,大幅度提高了项目的开发速度和测试便捷性。这一切都创造了项目随心所欲的重构可能。这对一个随同网络不可预知的潮流共同进退的Web项目而言,无疑是 带来了更多的成功可能。

Web 上面太多變化,一切世事都太過詭譎,沒有人可以宣稱他一定可以抓到世界的潮流,也沒有人可以宣稱他們這個時間訂的 spec 就一定符合所有的需求,所以重構速度是相當相當重要的關鍵。與其將籌碼壓在訂定一個完美的 spec ,還不如加碼在加強重新調整程式的速度來的實際。

再来,由动态语言本身独特的“弱类型”,“反射”等所带来的独特敏捷性而创造的Web框架更给一个网络项目带来了无限可能。Rails的出现无疑给了 Ruby一个广泛为世人所知的机会。作为一个以“敏捷”为根本口号的Web框架,不论是从其Convension优先的配置,还是yml轻数据源的应用, 等等等等无时无刻不渗透出其作为敏捷开发领先框架的优势。

我们团队在将近3个月的开发过程当中,深刻地体会到Rails框架和以往框架项比较的不同。inu的开发经历了无数次大大小小的重构和改动,在Rails 简便的Unit Test,Functional Test的支持下,重构变得异常便捷和舒畅。Active Record扮演着原来Hibernate的角色,无须任何xml的配置让Model一层的开发变得非常快速。作为一个典型的MVC框架,他在整体的部 署、测试和重构的便捷性上都超越了Spring+Hibernate这样当下比较流行的开发方式。虽然不得不承认Rails在速度、安全性和本地化方面都 存在着他的不足,但是作为一个新兴的网络框架加上新兴的动态语言,他所具有的独特敏捷性无疑是当下发展飞速的互联网最需要的开发工具。
一切都在於這個 Project 需要的特色是什麼?而不是這個開發框架是不是完美的。Web 需要的是快速反應世界的潮流,所以 Ruby on Rails 才會那麼的吃香。相比較其他完整的 Java Framework,或許他有些不足之處,或許他有些不利之處,但是 Web Framework 亟需 Ruby on Rails 的長處, Ruby on Rails 的短處在他的優點太過明顯之下,全部都被極小化。

美國的路又大條路程又超遠,所以家家戶戶都需要汽車,台灣普遍路程在 15分鐘以下,大街小巷的機會超級多,所以機車才在台灣那麼普遍。這不是說機車比汽車好,而是機車比汽車更適合台灣。同理選擇 Framework 不是考試,不需要選出一個第一名,一切都在於這個 Project 需要的特色是什麼?這才是重點。

沒有留言: