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

          [zz]Ruby兩本書讀后感

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

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

          現(xiàn)在市面上系統(tǒng)的,由淺及深的講Ruby的書鳳毛麟角,這本是分量最重的一本。原書第二版出版到現(xiàn)在也過去兩年了,國內(nèi)剛剛在這個月由博文引進(jìn)電工發(fā)行了譯本。

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

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

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

          對象和類–>容器、集合–>標(biāo)準(zhǔn)類型–>表達(dá)式–>異常和模塊–>基本輸入輸出

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

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

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

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

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

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

          主站蜘蛛池模板: 驻马店市| 澜沧| 绥棱县| 富裕县| 平顺县| 金坛市| 民勤县| 江永县| 安阳市| 贵州省| 城口县| 历史| 福鼎市| 嘉禾县| 凌云县| 前郭尔| 成武县| 沅江市| 焦作市| 乾安县| 平和县| 平邑县| 麟游县| 南充市| 东源县| 湖南省| 杭州市| 乌拉特前旗| 安吉县| 蓬溪县| 田林县| 合水县| 翁牛特旗| 临猗县| 若尔盖县| 徐水县| 大新县| 金华市| 贺兰县| 沁源县| 绥滨县|