2007年2月22日 星期四

Programming Ruby

書藉基本資料:Programming Ruby

如果曾經學過其它程式語言,這本書就是最佳選擇。

作者開頭指出他很想寫本倒著寫的書,我們已學過很多東西,沒必要讓讀者耐著性子從基礎語法慢慢看。這真是太對我胃口了,但作者嘗試以後,發現沒有語法什麼也講不了,top down approach根本無法開始,於是作者決定仍用top down approach,但一邊帶出需要用到的基本語法。

全書分5部份,我目前讀完Part I — Facets of Ruby,Ruby的快速入門。一路讀下來充滿驚喜,馬上就能看到Ruby特別之處,也能立即試寫一番,省下讀重覆概念的時間。說明清楚、例子舉得好、文筆幽默,真是不可多得的好書。The Pragmatic Programmers這家公司很有趣,出版的書是名付其實的”實務”,也會提供線上觀看版本,《Programming Ruby》 1/e已免費放出,網路上有不少人做中文化的工作。我讀的是2/e,讀得過程有太多心得想寫,轉念一想,反而覺得大家自己讀較有效率,就不一一提出。

看完Part I後,Ruby給我的感覺很好,內建Profiler、Debugger、Unit Test,加上Ruby強悍的架構,讓Unit Test寫起來很輕鬆,初期引入的抵抗很小,以Java的Unit Test來說,要先找JUnit用的Jar檔,再import Jar檔,Java寫小東西很瑣碎,而Unit Test本質上就是一堆小class、小method,用Java寫起來很煩。我沒用過C的Unit Test,但沒Reflection的語言,Unit Test勢必要更多設定,連試的念頭都沒有。

這裡挑書裡幾段和技術無關的有趣內容分享:

Test::Unit comes with a number of fancy GUI test runners. As real programmers use the command line, however, these aren’t described here. Again, see the documentation for details.
Programming Ruby 2/e, ch12 

Sad to say, it is possible to write buggy programs using Ruby. Sorry about that.
Programming Ruby 2/e, ch13 

A subprocess changes an environment variable, and this change is inherited by a process that it then starts. However, the change is not visible to the original parent. (This just goes to prove that parents never really know what their children are doing.)
Programming Ruby 2/e, ch14 

沒有留言:

張貼留言