posts - 403, comments - 310, trackbacks - 0, articles - 7
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          [zz]Ruby兩本書讀后感

          Posted on 2007-06-16 19:54 ZelluX 閱讀(718) 評論(0)  編輯  收藏 所屬分類: Scripting

          http://www.aurora-x.net/blog/oasis/?p=92
          by opengl@rygh

          現在市面上系統的,由淺及深的講Ruby的書鳳毛麟角,這本是分量最重的一本。原書第二版出版到現在也過去兩年了,國內剛剛在這個月由博文引進電工發行了譯本。

          800+頁的大部頭,一半是核心庫和標準庫的參考,另外一半分為三個部分——基礎、環境、高級。這其中我覺得比較有價值的部分在于“高級這一塊”有助于讓你從一個更高的層次來理解和掌握這門語言,這一部分也是需要經常參考的部分。

          就國內目前引進的唯一一本算是講Ruby的書,要從這本書開始學習Ruby估計會嚇跑不少潛在用戶。作者是大牛沒錯,不過教學則是另一回事了(大家都應有體會,本科上課的時候課講的最好的老師通常都不是學術最牛的老師)。缺點有兩處很明顯:

          第一是自頂向下,它的順序是這樣的:

          對象和類–>容器、集合–>標準類型–>表達式–>異常和模塊–>基本輸入輸出

          一個從上降到低又陡然上升的過程。作者自己也說在第一版里這樣的效果并不好,因此在第二版里特意增加了一個介紹性章節,粗略的先把所有東西列給讀者看一遍。雖然起到些作用,但是實際效果我想對于初學者來說仍然不會太好。C++/Java的書我都讀過不少,也沒見哪個是一上來就把Class/Object這些東西甩給讀者的,總是從基本類型、控制語句過渡。除非你已經對OO這套相當熟悉了,否則上來這個門檻就能把一堆新手擋在門外。

          接下來的,談不上十分晦澀,但也不是什么讀來輕快的內容,關鍵是作者給的例子較少,使得象塊、迭代這些特色難以掌握。再有一點,ruby的語法風格有相當部分還保留有Perl的痕跡,而Perl是出了名的以奇怪符號著稱于世,這些符號在新手眼里不外天書,而高手們則愛不釋手。

          所以,要能比較順利的通過這本書的入門之路,你得事先具有OO的基礎,至少一門腳本語言的經驗(Perl最佳),函數式編程的一些概念(否則當你看到塊的一些用法時會很迷惑)。然后,可以用Ruby笨拙的寫一些小程序了。

          Ruby作為動態語言之一,它的最大特點自然是“動態”兩個字,其著名的“duck typing”就是一大體現(在我看來,就像是基于接口的調用,但卻并不用一個給定的接口去事先限制)。這些在高級部分里都有專門講述,是應該重點學習的部分。

          那么入門究竟用什么書更好?我推薦《Everyday Scripting with Ruby》這本。和《Programming Ruby》同一個出版社,今年一月份剛出了原版。它是以相當循序漸進的方式帶領讀者進入Ruby的世界,尤其是作者精心設計的幾個Project是全書亮點(學習一門語言最好的方式還是要動手寫程序)。

          最后總結如下,首先看《Everyday》這本書,跟著書中的指導擺弄過所有的Project,并完成相應的練習。然后再看《Programmin》一書的Crystallized部分。再之后就主要是當作API參考手冊了。花錢去買中文版我個人覺得不是很有必要,總共四部分中,前兩部分我覺得蠻雞肋的,第四部分在電腦上查更方便,只有第三部分有較高的價值。

          主站蜘蛛池模板: 隆回县| 长武县| 登封市| 天门市| 安西县| 遂昌县| 长葛市| 大埔县| 吴江市| 沽源县| 楚雄市| 岑巩县| 六安市| 建德市| 威远县| 盘山县| 定兴县| 唐山市| 珲春市| 密云县| 汉川市| 泾源县| 修武县| 晋宁县| 包头市| 南城县| 城固县| 冀州市| 文安县| 广昌县| 乡城县| 临湘市| 德阳市| 青海省| 呼玛县| 郧西县| 佳木斯市| 漯河市| 峨眉山市| 扬州市| 南涧|