閱讀者 Ruby的白魔法書

2021-09-17 02:51:54 字數 1880 閱讀 3550

在ruby的世界中,程式設計師們享受著各種光怪陸離的語法糖,也經歷著各種各樣的陷阱。而這一切的根本就在於ruby強大的元程式設計能力。元程式設計就像ruby世界的魔法,當其是白魔法的時候可以幫助你把程式變得異常簡潔,美觀;而當其是黑魔法的時候,你將會迷失在一些很難解釋的bug中。

\ 《ruby元程式設計》就是一部告訴大家如何使用,控制ruby元程式設計魔法的秘籍。該書的寫作手法非常值得稱道,作者把所有的知識點濃縮在了乙個星期的工作過程中,通過乙個菜鳥和大牛針對專案中遇到的各種問題的討論,解決來引入各種元程式設計的知識點。 除此之外,在每個知識點的結尾處都還附帶了有趣的小測驗, 讓讀者可以跟隨著菜鳥的思路,感受到自己在一步一步的掌握元程式設計的思想。這一切的編排讓這本書讀起來非常的有趣,並且書中的理論知識與專案中的實戰相結合的講述方式,讓讀者更容易去思考如何在自己的專案中運用這些知識。

\ 我是從同事的口中聽說這本書的,他讀完這本書之後說:「這本書基本上改變了其寫**的習慣。」,作為乙個碼齡超過10年的程式設計師。如此讚譽一本書,讓我決心一定要讀一下這本書,讀完之後,此書果然不負此讚譽。不管是初級程式設計師,還是程式設計高手,都應該讀一下這本書,如果你是ruby程式設計師,那麼這本書可以算是必讀書之一。該書分為2個部分。第一部分從物件模型,方法,**塊,類定義等方面一一剖析ruby的設計原理,然後再通過例項告訴大家如何在實際應用中有效的利用這些設計原理,同時作者還非常善良的提醒了大家在使用這些技巧時的注意事項,防止這些魔法變成黑魔法。第二部分是剖析rails中使用到的各種元程式設計技巧,讀過之後,對理解rails底層實現裨益良多,當然,對rails無愛的讀者可以直接略過。

\\ 提到物件,程式設計師首先想到的就是類這個概念,在本書第一章中,作者首先對ruby世界的類進行了一番基礎的講解:\

最後,作者非常簡練的總結了關於ruby物件模型的知識點,這些初看起來非常複雜的概念,當你深入進去之後,就會發現,複雜性慢慢褪去。一切都變得簡單,清晰起來,如果把eigenclass、類和模組歸結為乙個東西的話(因為它們本質上的概念差不多,姑且統稱為模組),ruby的物件模型可以總結為一下幾條規則:

\\ 對於oop出身的程式設計師來說,關於ruby物件模型的介紹比較容易理解,接受。而**塊則是來自於函式式程式設計的世界。因此,閱讀本章時,oop程式設計師需要清空自己的固有思維來接收新的概念和思維方式。**塊極大的增強了ruby**的表現力。在本章中,作者先介紹了塊的基礎知識,如何定義,使用**塊,然後進一步介紹了ruby世界中的所有可呼叫物件。同時,在該章節中還講解了作用域的基本概念,以及如何使用**塊技術控制作用域的知識。

\ \

**塊可以轉化為可呼叫物件, 這樣就可以把**塊當做物件處理。\

ruby中有4種建立可呼叫物件的方法:\

\ 可呼叫物件在ruby中都是proc物件,但是lambda和proc建立的proc物件還是有些細微差別。主要體現在2個方面: \

return關鍵字的行為,lambda中,return僅表示從lambda中返回, 而proc中,則是從定義proc的作用域中返回。\

引數校驗規則:lambda中,引數個數不對,會拋argumenterror錯誤,而proc中,則會嘗試調整引數為自己期望的形式,引數多,則忽略多餘的,引數少則自動補nil。\

\ 本書在每個章節的知識點講解過程中,還包含了很多實戰的技巧,這些小技巧有的可以幫助程式設計師快速定位問題,比方說,使用object#instance_eval(),檢視乙個物件的內部行為,一些可以幫助開發者優雅實現一些的功能,比方說通過類巨集和動態定義方法實現的attr_accessor。\

更多的法術,等待著讀者到書中去找尋。

\\ 「其實世界上根本就沒有什麼元程式設計,有的只是程式設計而已」,作者在第6章中的點睛之句,昇華了這本書的主題。所謂程式設計就是通過**去解決實際的問題,作為程式設計師,我們總是盡力去尋找最精巧、最舒服的解決問題的方式。而元程式設計所展示的所有技巧,手法就正好為我們提供了這樣的方式。

\ 感謝張逸對本文的審校。

\

閱讀者 十三 數學那些事兒

本書的中文書名與書中的行文風格非常貼切,正如 明朝那些事兒 大話明朝歷史一樣,本書大話的是數學的那些事,那些人,還有那些如星空一般璀璨的思想與發現。本書與計算機無關,與軟體無關,不過我還是建議軟體開發者能讀一讀。所謂 開卷有益 即使我們不需要去證明那些定理,背誦那些複雜的公式,但是這種思維的鍛鍊對於...

閱讀者 四 C 必知必會

編者按 一本程式語言的好書,倘若能經受住時間的考驗成為經典,那麼它的作者必然是在這門語言浸淫多年達至爐火純青地步的專家級人物。c 必知必會 的作者stephen c.dewhurst是貝爾實驗室最早的c 程式設計師之一,有著20多年的c 應用經驗。他的履歷與經驗足以讓讀者心生信賴。然而,好的程式設計...

閱讀者(八) 硝煙中的Scrum和XP

書名很酷炫,內容更精彩。在運用scrum的時候,我發現有此書在手,猶如迷途中的一點燈光,再也不害怕我們的scrum過程會走在錯誤的道路上。當我們對sprint計畫的制定而爭執不休時,翻閱此書,總能得到恰如其分的指導。例如,遵循本書的建議,我們在會議室的牆上貼上了標識了各自重要程度的索引卡,我們像一群...