10/20/2006

Agile Web Development with Rails


如果你正在找一本 Ruby on Rails 的書,你想要學習 Ruby on Rails ,或是你想看看 Ruby on Rails 是個啥東東。這本書是一定要買的書籍。 Ruby on Rails 三年就發展到這種程度,這本書真的功不可沒。

豐功偉業

根據 ijliao 的 O’Reilly 的書市報告,裡面的一段

RoR (Ruby on Rails) 則因為沒有去年同期銷售量可供比較而無法估算其成長率,但是以絕對值來看,只靠一本書的銷售量就可以和 JSP 的 20 本書打成平手、是 ASP 61 本書銷量的 1/5、是 PHP 52 本書銷量的 1/6,其強勢也就可以想見了。
這裡面的 " 只靠一本書 "就是這一本書了,就可知道這本書到底有多熱賣。至於品質,看看 Amazon 對他的評語,也幾乎是一面倒的五顆星。

作者


作者欄也相當閃亮亮,掛頭牌的 Dave Thomas 是 Ruby 聖經 Programming Ruby 的作者,也是傳說中David 三兄弟 的長男。(不知道我在講啥的人,請看光速蒙面俠)

三兄弟當中的次男,David Heinemeier Hansson 不用介紹了吧,他不只是一定會在軟體發展史上留下重要的紀錄,說不定還是一個不錯的作者。

Thomas Fuchsscript.aculo.us 的作者,也是 Ruby Core Team 其中一員,Web 2.0 那一章是他寫的。

剩下的 Andreas Schwarz , Leon Breedt, Mike Clark 當中 Mike Clark 是一個多產的 Web 書籍作者,不過之前都是寫 ASP 的書較多,其他的作者印象較淺,幫忙成份較高。

書評

這本書主要分成三個部份,

  • 第一部份是介紹Rails 以及如何安裝
  • 第二部份他開發了一個虛擬的購物車
  • 第三部份才開始徹底完整的介紹 Ruby on Rails
三部份中,我最為推薦第二部份購物車章節,那是我看過寫的最棒的 Tutorial。 他花了全書的 1/3 的章節介紹如何從頭到尾寫一個可以上下架,可以購物,可以寄出去,可以管理的購物車系統。在整個購物車建構裡面,他將整個 Ruby on Rails 的系統勾勒出來,並且隨著需求的增加,他一一介紹 Ruby on Rails 更深層的功能,不會讓人有一下子硬塞一堆東西的感覺。在整個購物車章節裡面,他會一一解釋為何這邊使用這個方式比較好,那邊要使用什麼方式比較好。通常當你有 Rails 設計疑問的時候,DHH 就會跳出解釋為什麼這個地方的設計理念。我大概看購物車程式就開始寫人生中第一個 Ruby on Rails 的 Project,發現到光是購物車短短的130幾頁,裡面教的觀念已經可以教你開發複雜的網頁程式了。

我發現到大部份這種介紹技術的書籍編排都是先將這個技術的全貌講一次,然後在寫相關的範例給予佐證。但是看完這本書之後,我發現到一開始放入一個良好的 Tutorial ,可以一次教一點東西,一次教一點東西,並且將整個技術的精髓慢慢的告訴讀者,不會容易有看完前面,後面忘記的感覺。國內的書籍作者可以考慮一下這本書的編排方式。

適用讀者


建議是對網頁設計略有概念的讀者較好,當然裡面會有稍微提到一些網頁基礎的知識,但不深刻。讀者不需要對Ruby 太了解,對 Ruby 不懂的人看完這本書,還是可以直接上手寫網頁程式,不過如果要 Rails 深入的話,恐怕還是得花點時間學好 Ruby 。以前已經對 Ruby 還有 網頁程式設計有點概念的人看這本書可說是如魚得水。當你看完這本書之後,你會發現你會學到 DHH 所謂網頁程式設計的 Best Practice ,所以就算你已經有點程度,依舊很適合這本書。

第二版也快要上市摟


Amazon 有一個人給這本書一顆星,原因是

Would have been 5 stars, but ... Wait for the second edition.Ruby on Rails has changed very much.
哈哈,這樣說法也很正確。這本書著書時間是 Rails 0.14 ~ Rails 1.0 的時間。到現在,Rails 1.2 已經快要推出了。所以他們也在緊鑼密鼓的推出第二版書,目前已經進入 Beta ,希望能夠把 Rails 1.2 的東西也加進去(來得及嗎?)這版加入了 Migration 以及 RJS 的東西,希望出來的成品品質能跟第一版一樣棒。

結語


這本書絕對是任何人學習 Ruby on Rails 最適合的第一本書,也是聖經本,不去買一本就別學 Ruby on Rails 了 XD

延伸閱讀
  1. Robbin 的書評

沒有留言: