Ruby元編程

出版時(shí)間:2012-1-10  出版社:華中科技大學(xué)出版社  作者:[意] Paolo Perrotta  頁數(shù):288  譯者:廖志剛,陳睿杰  
Tag標(biāo)簽:無  

內(nèi)容概要

《Ruby元編程》以案例形式循序漸進(jìn)地介紹了Ruby特有的實(shí)用編程技巧
(元編程)。通過分析案例、講解例題、回顧Ruby代碼庫的實(shí)現(xiàn)細(xì)節(jié),《Ruby元編程》作者Paolo Perrotta
不僅向讀者展示了Ruby編程的優(yōu)勢(shì)和Ruby特有的解決問題的方式,更詳細(xì)列出了發(fā)揮其優(yōu)勢(shì)的技巧和常用的Ruby設(shè)計(jì)模式。
Ruby創(chuàng)始人松本行弘作序推薦。

作者簡(jiǎn)介

  Paolo
Perrotta有超過10年的軟件設(shè)計(jì)和開發(fā)經(jīng)驗(yàn),發(fā)表過上百篇技術(shù)文章。他用過Java、C++、C#編程,最后愛上了Ruby。他是較早接受敏捷方法的實(shí)踐者,在Yoox(一家大型互聯(lián)網(wǎng)時(shí)尚公司)從事管理敏捷團(tuán)隊(duì)的工作。他還在歐洲各國教授編程培訓(xùn)課。目前他和女友(還有一只貓)住在意大利,專心鉆研Ruby。

書籍目錄

前言
致謝
引言
“元”這個(gè)字眼
關(guān)于本書
關(guān)于你
第1部分 Ruby元編程.
第1章 星期一:對(duì)象模型
1.1 跟Bill在一起的星期一
1.2 打開類
1.3 類的真相
1.4 小測(cè)驗(yàn):缺失的連接線
1.5 調(diào)用一個(gè)方法時(shí)發(fā)生了什么
I.6 小測(cè)驗(yàn):混亂的模塊
1.7 對(duì)象模型小結(jié)
第2章 星期二:方法
2.1 一個(gè)重復(fù)代碼的問題
2.2 動(dòng)態(tài)方法
2.3 method—mtssing()方法
2.4 小測(cè)驗(yàn):狩獵Bug
2.5 關(guān)于method—missing()方法的更多內(nèi)容
第3章 星期三:代碼塊
3.1 怎樣度過駝峰日
3.2 小測(cè)驗(yàn):Ruby的#符號(hào)
3.3 閉包
3.4 itance eval()
3.5 可調(diào)用對(duì)象
3.6 編寫一種領(lǐng)域?qū)僬Z
3.7 小測(cè)驗(yàn):更好的領(lǐng)域?qū)僬Z言
第4章星期四:類定義
4.1類定義揭秘
4.2 小測(cè)驗(yàn):Taboo類
4.3 單件方法
4.4 Eigenelass
4.5 小測(cè)驗(yàn):模塊的麻煩
4.6 別名
4.7 小測(cè)驗(yàn):打破數(shù)學(xué)規(guī)律
第5章 星期五:編寫代碼的代碼
5.1 帶路
5.2 Kernel#eval
5.3 小測(cè)驗(yàn):校驗(yàn)過的屬性(第一步)
5.4 小測(cè)驗(yàn):校驗(yàn)過的屬性(第二步)
5.5 小測(cè)驗(yàn):校驗(yàn)過的屬性(第二三步)
5.6 小測(cè)驗(yàn):校驗(yàn)過的屬性(第四步)
5.7 鉤子方法
5.8 小測(cè)驗(yàn):校驗(yàn)過的屬性(第五步)
第6章 尾聲
第2部分 Rails中的元編程.
第7章 AcllyeRecord的設(shè)計(jì)
7.1 準(zhǔn)備旅程
7.2 ActiveRecord的設(shè)計(jì)
7.3 經(jīng)驗(yàn)教訓(xùn)
第8章 深入AcllyeRecord
8.1 動(dòng)態(tài)屬性
8.2 動(dòng)態(tài)查找器
8.3 經(jīng)驗(yàn)教訓(xùn)
第9章 安全元編程
9.1 元編程的測(cè)試
9.2 化解猴子補(bǔ)丁
9.3 經(jīng)驗(yàn)教訓(xùn)
第3部分 附錄
附錄A 常見慣用法
A.1 擬態(tài)方法
A.2 空指針保護(hù)
A.3 關(guān)于方法參數(shù)的技巧
A.4 Self Yield
A.5 Symbol#to_proc()方法
附錄B 領(lǐng)域?qū)僬Z言
B.1 關(guān)于領(lǐng)域?qū)僬Z言
B.2 內(nèi)部和外部領(lǐng)域?qū)僬Z言
B.3 領(lǐng)域?qū)僬Z言和元編程
附錄C 法術(shù)手冊(cè)
C.1 法術(shù)集
附錄D參考書目
索引

章節(jié)摘錄

版權(quán)頁:   插圖:   ——可以格式化你的硬盤,更糟糕的是,甚至可以讀到你有點(diǎn)肉麻的電子情書。這種行為被稱為代碼注入攻擊。 防止代碼注入 很顯然,下一個(gè)要問Bill的問題就是,“怎樣才能保護(hù)我的代碼免受代碼注入攻擊呢?”你也許可以解析所有的字符串代碼(第142頁),以識(shí)別其中可能有危險(xiǎn)的操作。不過,這種方式已經(jīng)被證明不大有效,因?yàn)閻阂獯a的寫法成千上萬,想要戰(zhàn)勝一個(gè)一心想搞破壞的黑客,對(duì)你和你的計(jì)算機(jī)來說都是危險(xiǎn)的。 當(dāng)談到代碼注入時(shí),有些字符串會(huì)比其他字符串更安全。只有從外面輸入的字符串才可能包含惡意代碼,因此可以簡(jiǎn)單地限制eval()只執(zhí)行那些你自己寫的字符串。當(dāng)然,說起來容易,追蹤字符串的來源可能會(huì)出乎意料的困難。 由于上面的原因,一些程序員傾向于完全禁止使用eval()方法。有些程序員緊張那些可能出錯(cuò)的東西,因此徹底禁止eval()方法成了一種非常流行的做法?!叭绻麤]有eval()方法,則只能根據(jù)具體問題來尋找替代方法。還記得“代碼建入”(第148頁)中的數(shù)組探索者程序么?你可以使用動(dòng)態(tài)派發(fā)(第41頁)技術(shù)來代替eval()方法: def explore_array(method,*arguments) [′a′,′b′,′c′],send(method,*arguments) end. 不過,有時(shí)候你還是會(huì)懷念eval()方法的。例如,最近,這個(gè)安全版本的數(shù)組探索者要求分開輸入方法名和參數(shù)。不幸的是,分開輸入這種方式可能會(huì)讓你的Web界面顯得不那么方便。另外,這個(gè)安全版本還不能調(diào)用像find()這樣接受塊的方法。如果需要支持塊,那么不得不允許在系統(tǒng)中輸入任意代碼。在大量使用和完全不使用eval()之間并沒有一個(gè)容易找到的“甜點(diǎn),~。如果不想完全棄用eval(),Ruby的確也提供了一些能讓它更安全的方式。下面看看這些特性。 污染對(duì)象和安全級(jí)別 Bill繼續(xù)關(guān)于安全性的話題,介紹了污染對(duì)象的概念。Ruby會(huì)自動(dòng)把不安全的對(duì)象——尤其是從外部傳入的對(duì)象——標(biāo)記為被污染的。污染對(duì)象包括程序從Web表單、文件和命令行讀入的字符串,甚至包括系統(tǒng)變量。每次從污染字符串運(yùn)算而來的新字符串,也是被污染的。

媒體關(guān)注與評(píng)論

  Ruby的很多特性繼承自其他語言,這些語言包括Lisp、Smalltalk、C、Perl等。其元編程特性來自于Lisp(以及Smalltalk)。元編程看起來有點(diǎn)像魔術(shù),功能強(qiáng)大。但是你必須牢記:能力越大,責(zé)任越大。享受Ruby編程吧?!  杀拘泻?Ruby之父

編輯推薦

《Ruby元編程》填補(bǔ)了Ruby語言參考手冊(cè)和編程案例之間的空白。它不僅解釋了各種元編程的技術(shù),還展示了編寫更精練、更優(yōu)良代碼的方法。不過要事先警告你,熟悉了新方法后,你會(huì)難以忍受目前主流的編程方法。

圖書封面

圖書標(biāo)簽Tags

評(píng)論、評(píng)分、閱讀與下載


    Ruby元編程 PDF格式下載


用戶評(píng)論 (總計(jì)80條)

 
 

  •   這本書呢在ruby的群里被大家提到過很多次,口碑都是不錯(cuò)的。
    開始學(xué)ruby的時(shí)候是覺得元編程是很高端的技巧,自己用不著;但是隨著開發(fā)的深入,似乎就要用到一些元編程的知識(shí)了,因此我就買來了這本書。
    他并不像一般國內(nèi)的IT教材,全是概念啊然后就是例子;他是構(gòu)架了一個(gè)故事背景,Bob和Bill在交流和學(xué)習(xí)的過程中逐步學(xué)到相應(yīng)的知識(shí),非常有趣味性。讀者的疑問,很可能書中的Bob也會(huì)很想到,然后就是很自然的答疑解惑。我覺得很多國外的資料書這一點(diǎn)都做的很不錯(cuò)。
    另外就是,翻譯工作做的挺好的。白紙黑字的書雖然做不到代碼高亮的功能,但是排版還是挺舒服的。
  •   java中通過反射才能實(shí)現(xiàn)的方法,通過ruby的元編程就能輕松解決。作者模擬一個(gè)辦公場(chǎng)景,在書中你將成為一名新入職的ruby程序員,在伙伴Bill的教導(dǎo)中逐步學(xué)習(xí)ruby元編程的技巧。內(nèi)容深入而不枯燥,大可以隨時(shí)捧在手上翻翻,絕對(duì)受益匪淺。。
  •   看了大部分,ruby的元編程比Java的反射確實(shí)不是一檔次的
  •   相當(dāng)不錯(cuò)。講了很多Ruby背后元編程的知識(shí),看完覺得受益匪淺
  •   元編程的好書,學(xué)習(xí)ruby深入的更要看看。
  •   看到網(wǎng)上對(duì)于這本書的評(píng)價(jià)還挺好的,剛好自己最近也是學(xué)習(xí)ruby,于是就購買了,現(xiàn)在看了一些,感覺挺不錯(cuò)的。本書并不是完全在講述元編程,而是從類開始講述。因此可以一步一步深入去閱讀和理解。現(xiàn)在正在閱讀當(dāng)中。
  •   Ruby元編程
  •   今天中午剛到的書,忍不住馬上就看了幾十頁,感覺很好。本書采用說故事的方式來介紹知識(shí),講的是一個(gè)程序員和一個(gè)叫Bill牛人在上班的一周內(nèi)發(fā)生的關(guān)于Ruby的事情。以種方式來傳授知識(shí),真心喜歡。還要說的是,書中有些小結(jié)還有習(xí)題,和習(xí)題答案,幫助理解重要的知識(shí)點(diǎn)。書中的插圖也挺好。此外,在推薦一本書:Programming Ruby (2nd edition);目前正在看,專們講述Ruby的書,很詳實(shí)。
    感覺編寫Ruby比Java要快速高效得多,挺喜歡的。不過他們都有各自的優(yōu)缺點(diǎn),同時(shí)是剛剛接觸Ruby,所以不敢妄加評(píng)論。
    有經(jīng)驗(yàn)的同學(xué)出來說一說啊,大家也交流交流。大三了,快畢業(yè)了,抓緊看書吧。
  •   早前看過《松本行弘的程序世界》認(rèn)識(shí)的RUBY,最近對(duì)MACRUBY感興趣,遂挑選了這本網(wǎng)上評(píng)價(jià)都很高的RUBY書。
  •   書是不錯(cuò),但讓我明白了ruby的嚴(yán)重失誤。作為解釋性語言快速上手很重要,雖然創(chuàng)始人試圖討好各領(lǐng)域的開發(fā)者,但簡(jiǎn)潔上須學(xué)習(xí)python。個(gè)人預(yù)見,十年之內(nèi)必淘汰,而python會(huì)用的很久。python雖然功能不完善,但也因此累贅很少。
  •   一本很好的ruby進(jìn)階書籍,對(duì)于入門后的一些疑惑能夠給與很好的解答,比如Ruby中的對(duì)象模型、一些gem源碼中搞不清作用的方法等等。
  •   別人推薦看的,ruby好書,值得推薦,收獲頗豐
  •   以前只是用過一些ruby的庫,覺得很優(yōu)雅,終于知道為什么這么贊了。
  •   不錯(cuò)的書。還沒細(xì)看。先看入門的,這個(gè)適合ruby進(jìn)階者。
  •   質(zhì)量很好,講解的也很清晰
    很適合
    很喜歡
    剛接觸Ruby會(huì)仔細(xì)看。
  •   除了后面的介紹RAILS源碼,前面的都通讀了一遍。RUBY果然很美味。
  •   這本ruby書算是進(jìn)階書籍,可以幫助我更好地去學(xué)習(xí)ruby。
  •   不用說了,學(xué)ruby的都知道
  •   學(xué)習(xí)Ruby,跟上時(shí)代!
  •   ruby程序員一點(diǎn)點(diǎn)要看的
  •   非常經(jīng)典,學(xué)習(xí) ruby 必備。
    我是初次學(xué)習(xí) ruby,直接從這本書入手,感覺對(duì) ruby 的理解比從語法書入手要深入的多。
    翻譯、印刷、排版也非常好,難得的佳作。
  •   關(guān)于ruby不錯(cuò)的書
  •   ruby 進(jìn)階必看,尤其是書中對(duì) 知識(shí)點(diǎn)有 Pn 鏈接很不錯(cuò)
  •   元編程介紹的很透徹
  •   Ruy元編程,期待看到精彩內(nèi)容!
  •   不知道“改善代碼結(jié)構(gòu)一本通”體現(xiàn)在哪里?
  •   沒什么說的,松本行弘的書
  •   這本書真的不錯(cuò),跟看故事的,不枯燥,里面講了很多方法,看完rails程序設(shè)計(jì),再看這個(gè),覺得很有用
  •   書寫的很好,例子又恰到好處,推薦。
  •   挺不錯(cuò)的書,慢慢鉆研,爭(zhēng)取有進(jìn)步
  •   送貨很快,書也非常新,內(nèi)容還未細(xì)讀不做評(píng)價(jià)
  •   送貨速度快,手感不錯(cuò),印刷也不錯(cuò)
  •   內(nèi)容很不錯(cuò) 很有趣 但是書的封面有些粗糙 有點(diǎn)痕跡
  •   印刷精美。。
  •   不錯(cuò), 很值得一看
  •   書本還沒看,等看了再來評(píng)價(jià)。這次網(wǎng)購很滿意。當(dāng)當(dāng)速度超快。哈哈。書本質(zhì)量也不錯(cuò)。
  •   很好的一本書 看完覺得自己真的還很菜 繼續(xù)學(xué)習(xí)
  •   皇帝的新衣啊,其實(shí)挺難看懂的!必須有相當(dāng)基礎(chǔ)再來進(jìn)階的。
  •   書不是很厚,看了一章,總體還算滿意
  •   非常好,學(xué)習(xí)uy必讀!
  •   剛開始看英文版的,因水平有限,看得很費(fèi)勁,效率實(shí)在低下。實(shí)在忍不住買了實(shí)體書,確實(shí)值得買一本!
  •   嗯,劉鑫大佬是這么說的

    要我說的話,我大概也只能這么說了。不少內(nèi)容其實(shí)你能在閱讀源代碼或者大量項(xiàng)目的時(shí)候看到或者自己想出來,但是還有不少你想不到的。

    所以這算是一本能讓人感動(dòng)的書。
  •   很先進(jìn)的思想,即使現(xiàn)在不用,也值得學(xué)習(xí)學(xué)習(xí)!
  •   超級(jí)經(jīng)典的一本書!值得一看~
  •   公司的ruby大牛推薦的,看當(dāng)當(dāng)上可以訂購了就買了,waiting~
  •   比較深入的介紹了ruby的方方面面以及背后的故事。
  •   還可以的吧剛開始學(xué)習(xí)ruby這本書看不了要過一段時(shí)間再看
  •   想研究Ruby如何定義DSL所以買了這本書,還沒細(xì)看。感覺內(nèi)容寫得比較好懂。
  •   工作需要,必需的!
  •   看看可以不要
  •   他說還行,有時(shí)間得好好看看。
  •   昨晚下的單,中午就到了
  •   書不錯(cuò),但是書有些許破損
  •   ing好的 可以學(xué)習(xí)學(xué)習(xí)啊
  •   這本書入門級(jí)
  •   速度有點(diǎn)慢,書質(zhì)量還可以。
  •   概念!
  •   英文版早就出來了,中文版的也還不錯(cuò)。
  •   看過***mon lisp再看這本書,覺得ruby實(shí)在沒法比啊。
  •   和想像中差距比較大,一般看看吧,總歸能長(zhǎng)點(diǎn)知識(shí)。
  •   拿到的書本是受污的
  •   非常好,讓你更加深刻得理解了這門語言的設(shè)計(jì)思想
  •   書的內(nèi)容非常不錯(cuò)。建議看英文原版。翻譯的還行。
  •   公司最近對(duì)元編程開始有要求了...然后今天一查,正好是上個(gè)月出版的... 覺得好感動(dòng)啊另外國內(nèi)出版社希望多出一些rails3的書籍,原版的過于昂貴
  •   只要是使用ruby編程的都應(yīng)該看
  •   內(nèi)容自然不必說了,非常好
  •   還沒看完,只看了前三章,總的說通俗易懂,對(duì)于從前搞java、趕鴨子上架搞ruby、沒有系統(tǒng)學(xué)過的我,對(duì)這個(gè)語言理解更透徹
  •   本書不僅只講元編程,而是透過元編程,揭示Ruby語言的設(shè)計(jì)哲學(xué)與核心,同時(shí)又是講求實(shí)踐的好書,幾乎所有示例都有重構(gòu)的影子,這書會(huì)讓你真正了解Ruby,而且讀起來不累!
  •   元編程 本書開始ActiveRecord的解說就吸引了我,我最近剛研究了ActiveRecord這里就給我講解了機(jī)理,贊啊
  •   價(jià)格合理,書籍內(nèi)容很好!
  •   不僅僅是講Ruby,如果你以前有面向?qū)ο缶幊探?jīng)驗(yàn),那么這本書能增強(qiáng)你這方面的認(rèn)識(shí)。解決你知其所以然的問題。
  •   建議學(xué)習(xí)元編程的可以看看
  •   這個(gè)本書對(duì)ruby的很多概念進(jìn)行了深刻的解釋
  •   這本書不錯(cuò),值得看下
  •   講述故事的方式,非常不錯(cuò)
  •   不錯(cuò),大概翻了一下內(nèi)容,寫的還是蠻簡(jiǎn)單的,也比較容易懂。
  •   元編程的理念很好,但也要用好才行
  •   值得珍藏的一本回味書
  •   不錯(cuò)不錯(cuò),喜歡喜歡喜歡。
  •   非常適合進(jìn)階
 

250萬本中文圖書簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書網(wǎng) 手機(jī)版

京ICP備13047387號(hào)-7