應(yīng)用Rails進(jìn)行敏捷Web開發(fā)》
敏捷的奇跡
捧在你手上的這本書算得上一個奇跡:僅僅一年前當(dāng)我向出版社推薦它時,編輯們還擔(dān)心這樣一本關(guān)于“冷門主題”的著作是否能夠在國內(nèi)受到關(guān)注,甚至是否值得去引進(jìn)翻譯它;而當(dāng)芷薰剛剛完成這個第一版的翻譯,編輯們已經(jīng)迫不及待地把尚未正式出版的第二版塞到了他的手上。當(dāng)然,你知道,這都是因為Rails。
在過去的一年中,Rails創(chuàng)造了太多讓人瞠目結(jié)舌的奇跡。這個新鮮的框架在短短時間內(nèi)極速竄紅,不僅大有在web開發(fā)領(lǐng)域一舉超越PHP/Perl/Python等“老前輩”之勢,甚至還震動了Java的世界,讓眾多有著多年J2EE開發(fā)經(jīng)驗的架構(gòu)師相見恨晚,連.NET社群也未能在這場風(fēng)暴中幸免。老話說“模仿是最真誠的恭維”,那么看看Groovy on GRails、SQL on Rails、Lisp on Line、Trails、MonoRails這些連名字都蕭規(guī)曹隨的框架如同雨后春筍般層出不窮,開發(fā)者社群對Rails的認(rèn)可早已溢于言表了。
作為Rails的作者,David Heinemeier Hansson也隨著他的作品一道,迅速步入了頂尖程序員的行列。這個生于1979年的丹麥小伙于2005年8月在Google和O’Reilly共同舉辦的“全球開源大會”(OSCON)上被評為“年度最佳黑客”;《連線》雜志把他的大照片放上了封面,標(biāo)題是“地球上最炙手可熱的黑客”。Rails于2006年3月獲得了Jolt大獎“最佳web開發(fā)工具”獎項,第一本關(guān)于Rails的著作——也就是你手上的這本書——同時獲得了Jolt大獎“最佳技術(shù)類圖書”獎項。如果把剛剛過去的一年稱為“Rails年”,我相信并不為過,而且這股熱潮還在不斷蔓延升溫。
Rails究竟有什么神奇之處,讓一干人等為它心醉神迷?最直觀的原因是,它封裝了很多關(guān)于web開發(fā)的知識——Struts也允許你實現(xiàn)各種各樣的功能,但那只是“能力”,卻不是“知識”。你可以有100種方式來組織你的web應(yīng)用,Rails則把一種最合用的方式直接放到你的手上。在用Rails開發(fā)web應(yīng)用時,你會感覺事事都那么貼心、處處都那么順手,仿佛每個問題都已經(jīng)有一個解決方案就在手邊。這就是“知識”,Rails的開發(fā)者們已經(jīng)把他們開發(fā)web應(yīng)用的經(jīng)驗融入到了這個框架之中。
另一方面——在我看來是更加重要的——原因就在本書的標(biāo)題中:agile。平心而論,我并不完全贊同芷薰對本書標(biāo)題的翻譯,因為agile實在是“敏捷”而非“快速”。“快速”僅僅是指速度而言;“敏捷”則不僅意味著開發(fā)速度快,而且還意味著應(yīng)用程序具有能夠隨時應(yīng)對變化的靈活性、讓修改既有代碼與添加新功能易如反掌的優(yōu)雅性、以及在快速迭代中反復(fù)折騰也不會散架的高質(zhì)量。現(xiàn)代企業(yè)(尤其是從事互聯(lián)網(wǎng)業(yè)務(wù)的企業(yè))隨時面對著全球化經(jīng)濟的機遇與挑戰(zhàn),飛速變化的商業(yè)環(huán)境和業(yè)務(wù)使他們對IT提出了更高的要求:他們不僅要快速,更要求敏捷。
Rails正是一個具備了敏捷特性的web開發(fā)框架。除了框架本身的設(shè)計之外,它也得益于Ruby語言本身:這種語言比之Java/C#等語言更具動態(tài)性,它的語法能夠隨著不同的應(yīng)用場景而進(jìn)化演變,這就使得開發(fā)者能夠在Ruby基礎(chǔ)上創(chuàng)造出形形色色的DSL——簡單地說,也就是讓Ruby程序看起來更像是在描述問題領(lǐng)域,而不是“編寫計算機程序”。實際上,Rails框架本身就是針對web應(yīng)用的DSL,其中的ActiveRecord則是針對數(shù)據(jù)庫的DSL。此外,Rails還內(nèi)建了對于測試驅(qū)動、自動構(gòu)建等敏捷實踐的支持。語言、框架、開發(fā)過程的三位一體,讓Rails具備了敏捷web開發(fā)的全部要素。在閱讀本書的過程中,讀者就可以親身感受到這種敏捷的體驗。
作為新技術(shù)最熱心的嘗試者與敏捷方法最忠實的推行者,ThoughtWorks已經(jīng)在Ruby/Rails方面積累了相當(dāng)豐富的經(jīng)驗,并且已經(jīng)用Rails進(jìn)行了好幾個真實項目的開發(fā)。從芷薰開始翻譯本書起,ThoughtWorks中國公司就與他建立了緊密的聯(lián)系,并全程承擔(dān)了對譯本的審閱工作。如果你在閱讀本書之后需要更多關(guān)于Ruby、關(guān)于Rails、關(guān)于敏捷方法的知識,也許ThoughtWorks可以給你提供必要的幫助。更多關(guān)于ThoughtWorks的信息,請關(guān)注ThoughtWorks中文網(wǎng)站:www.ThoughtWorks.com.cn。
我想,親愛的讀者現(xiàn)在大概已經(jīng)迫不及待地要翻開手上的書一探究竟了。那么,就請你不要猶豫,立刻隨著David Heinemeier Hansson和芷薰一起進(jìn)入Rails的世界吧。最后,祝你閱讀愉快、編程愉快。