物件導向的思考過程第四版譯者序

黃博文發表於2017-01-19

物件導向的思考過程第四版譯者序

很多IT從業人員進入這個行業都是從學習一門程式語言開始的。對於程式設計,我們往往過於關注語言的語法細節,反而忽略了其背後的設計理念。物件導向的思考過程就是一個非常優秀的設計理念。它可以獨立於語言存在。如果你熟練掌握了物件導向的思考過程,那麼就可以輕鬆地在不同的物件導向的語言之間切換。

本書透徹地闡述了物件導向這一概念。作者Matt在書中反覆強調學習物件導向的思考過程優於學習任何程式語言或工具。事實上,他也是這麼做的。Matt闡述了物件導向的三要素:繼承、封裝、多型,並且自己加上了第四個要素:組合。關於組合,Matt不惜篇幅做了大量的講解,並且列舉了很多通俗易懂的例子,這也是本書的一大特色。

Matt也糾正了人們的一些普遍誤解,比如物件導向的正規化與程式導向的正規化並不是完全對立的關係。而且在應用物件導向的設計和開發時,Matt也講解了不少如何與遺留系統整合的技巧。同時,Matt也簡要介紹了UML這個建模利器。為了不混淆重點,他把介紹UML的章節放置在很靠後的位置。因為他明白,先了解物件導向的各項概念是最重要的。

我雖然擁有多年的從業經驗,但是再看本書時仍然有不少收穫。其實自從我接觸了函數語言程式設計,就漸漸成為函數語言程式設計的擁躉。我會時不時地“鼓吹”函數語言程式設計正規化的好處,順便“貶低”一下物件導向程式設計。但同時我也有個疑問,既然函數語言程式設計這麼好,為什麼這幾年的發展只能算是波瀾不驚,而沒有掀起大風浪呢?讀了本書之後,我似乎找到了答案。首先物件導向的思考過程更加符合大家對世界的直觀感受,畢竟不是每個人都是數學家。函數語言程式設計可以簡化很多問題,但它並不能簡化所有問題。其次是物件導向的程式設計正規化和函數語言程式設計的正規化並不是完全對立的,正如作者講過,程式導向的程式設計正規化和麵向物件的程式設計正規化也不是完全對立的。比如目前流行的一些語言(Scala、Go等)都具備函式式的特點,也兼具物件導向的特點(只不過它們的物件導向的機制與傳統的方式有所不同)。所以無論你喜歡哪種程式設計正規化,瞭解彼此的不同之處是至關重要的。而本書則是瞭解物件導向正規化的優秀書籍。

本書已經更新到了第4版。從本書長達10多年的跨度來看,物件導向正規化經久不衰。Matt也適時地在新版中加入了一些新的主題,比如可移植資料、分散式系統、Web服務等。Matt不僅闡述了這些技術,還講述了它們的前世今生。這樣可以幫助讀者更加充分地瞭解技術的演化之路。

無論你是否有物件導向程式設計的經驗,本書都適合你作為物件導向思考的旅程開端。最後,希望本書能給大家帶來超凡的閱讀體驗。

購買連結:《物件導向的思考過程第四版》

相關文章