有哪些可以提高代碼質(zhì)量的書籍推薦?
這篇文章的內(nèi)容其實(shí)很早就寫了,并且,我也已經(jīng)同步在了我的 Github 的一個(gè)倉庫中(倉庫內(nèi)容還在繼續(xù)完善中),地址:https://github.com/CodingDocs/awesome-cs-books(閱讀原文即可直達(dá)) 。

考慮到還未在公號發(fā)過類似的文章,所以,今天晚上就來一篇!
下面推薦都是我看過并且我覺得值得推薦的書籍。

不過,這些書籍都比較偏理論,只能幫助你建立一個(gè)寫優(yōu)秀代碼的意識標(biāo)準(zhǔn)。如果你想要編寫更高質(zhì)量的代碼、更高質(zhì)量的軟件,還是應(yīng)該多去看優(yōu)秀的源碼,多去學(xué)習(xí)優(yōu)秀的代碼實(shí)踐(比如設(shè)計(jì)模式、設(shè)計(jì)原則)。
代碼整潔之道
《重構(gòu)》[1]

必看書籍!無需多言。編程書籍領(lǐng)域的瑰寶。
世界頂級、國寶級別的 Martin Fowler 的書籍,可以說是軟件開發(fā)領(lǐng)域最經(jīng)典的幾本書之一。目前已經(jīng)出了第二版。
這是一本值得你看很多遍的書籍。
《Clean Code》[2]

《Clean Code》是 Bob 大叔的一本經(jīng)典著作,強(qiáng)烈建議小伙伴們一定要看看。
Bob 大叔將自己對整潔代碼的理解濃縮在了這本書中,真可謂是對后生的一大饋贈。
《代碼大全》[3]

其實(shí),《代碼大全(第 2 版)》這本書我本身是不太想推薦給大家了。但是,看在它的豆瓣評分這么高的份上,還是拿出來說說吧!
這也是一本非常經(jīng)典的書籍,第二版對第一版進(jìn)行了重寫。
我簡單地瀏覽過全書的內(nèi)容,感覺內(nèi)容總體比較虛,對于大部分程序員的作用其實(shí)不大。如果你想要切實(shí)地提高自己的代碼質(zhì)量,《Clean Code》和 《編寫可讀代碼的藝術(shù)》我覺得都要比《代碼大全》這本書更好。
不過,最重要的還是要多看優(yōu)秀的源碼,多學(xué)習(xí)優(yōu)秀的代碼實(shí)踐。
《編寫可讀代碼的藝術(shù)》[4]

《編寫可讀代碼的藝術(shù)》這本書要表達(dá)的意思和《Clean Code》很像,你看它倆的目錄就可以看出來了。

在我看來,如果你看過 《Clean Code》的話,就不需要再看這本書了。當(dāng)然,如果你有時(shí)間和精力,也可以快速過一遍。
另外,我這里還要推薦一個(gè)叫做 write-readable-code[5] 的倉庫。這個(gè)倉庫的作者免費(fèi)分享了一系列基于《編寫可讀代碼的藝術(shù)》這本書的視頻。這一系列視頻會基于 Java 語言來教你如何優(yōu)化咱們的代碼。
在實(shí)踐中學(xué)習(xí)的效果肯定會更好!推薦小伙伴們都抓緊學(xué)起來啊!

《Effective java 》[6]

Java 程序員必看!
又是一本 Java 領(lǐng)域國寶級別的書,非常經(jīng)典。這本書主要介紹了在 Java 編程中很多極具實(shí)用價(jià)值的經(jīng)驗(yàn)規(guī)則,這些經(jīng)驗(yàn)規(guī)則涵蓋了大多數(shù)開發(fā)人員每天所面臨的問題的解決方案。這篇文章能夠非常實(shí)際地幫助你寫出更加清晰、健壯和高效的代碼。本書中的每條規(guī)則都以簡短、獨(dú)立的小文章形式出現(xiàn),并通過例子代碼加以進(jìn)一步說明。
程序員職業(yè)素養(yǎng)
《 The Clean Coder》[7]

《 The Clean Coder》是 Bob 大叔的又一經(jīng)典著作。
《Clean Code》和《 The Clean Coder》這兩本書在國內(nèi)都翻譯為 《代碼整潔之道》,我覺得這個(gè)翻譯還是不夠優(yōu)雅的。
另外,兩者的內(nèi)容差異也很大。《Clean Code》這本書從代碼層面來講解如何提高自己的代碼質(zhì)量。而《The Clean Coder》這本書則是從如何成為一名更優(yōu)秀的開發(fā)者的角度來寫的,比如這書會教你如何在自己的領(lǐng)域更專業(yè)、如何說不、如何做時(shí)間管理、如何處理壓力等等。
架構(gòu)整潔之道
《架構(gòu)整潔之道》[8]

你沒看錯(cuò),《架構(gòu)整潔之道》這本書又是 Bob 大叔的經(jīng)典之作。
這本書我強(qiáng)烈安利!認(rèn)真讀完之后,我保證你對編程本質(zhì)、編程語言的本質(zhì)、軟件設(shè)計(jì)、架構(gòu)設(shè)計(jì)可以有進(jìn)一步的認(rèn)識。
國內(nèi)的很多書籍和專欄都借鑒了《架構(gòu)整潔之道》 這本書。毫不夸張地說,《架構(gòu)整潔之道》就是架構(gòu)領(lǐng)域最經(jīng)典的書籍之一。
正如作者說的那樣:
如果深入研究計(jì)算機(jī)編程的本質(zhì),我們就會發(fā)現(xiàn)這 50 年來,計(jì)算機(jī)編程基本沒有什么大的變化。編程語言稍微進(jìn)步了一點(diǎn),工具的質(zhì)量大大提升了,但是計(jì)算機(jī)程序的基本構(gòu)造沒有什么變化。
雖然我們有了新的編程語言、新的編程框架、新的編程范式,但是軟件架構(gòu)的規(guī)則仍然和 1946 年阿蘭·圖靈寫下第一行機(jī)器代碼的時(shí)候一樣。
這本書就是為了把這些永恒不變的軟件架構(gòu)規(guī)則展現(xiàn)出來。
項(xiàng)目管理
《人月神話》[9]

這本書主要描述了軟件開發(fā)的基本定律:一個(gè)需要 10 天才能干完的活,不可能讓 10 個(gè)人在 1 天干完!
看書名的第一眼,感覺不像是技術(shù)類的書籍。但是,就是這樣一個(gè)看似和編程不沾邊的書名,卻成了編程領(lǐng)域長久相傳的經(jīng)典。
這本書對于現(xiàn)代軟件尤其是復(fù)雜軟件的開發(fā)的規(guī)范化有深刻的意義。
《領(lǐng)域驅(qū)動設(shè)計(jì):軟件核心復(fù)雜性應(yīng)對之道》[10]

這本領(lǐng)域驅(qū)動設(shè)計(jì)方面的經(jīng)典之作一直被各種推薦,但是我還來及讀。
軟件質(zhì)量其他書籍推薦
《代碼的未來》[11] :這本書的作者是 Ruby 之父松本行弘,算是一本年代比較久遠(yuǎn)的書籍(13 年出版),不過,還是非常值得一讀。這本書的內(nèi)容主要介紹是編程/編程語言的本質(zhì)。我個(gè)人還是比較喜歡松本行弘的文字風(fēng)格,并且,你看他的文章也確實(shí)能夠有所收獲。 《深入淺出設(shè)計(jì)模式》[12] :比較有趣的風(fēng)格,適合設(shè)計(jì)模式入門。 《軟件架構(gòu)設(shè)計(jì):大型網(wǎng)站技術(shù)架構(gòu)與業(yè)務(wù)架構(gòu)融合之道》[13] :內(nèi)容非常全面。適合面試前突擊一些比較重要的理論知識,也適合拿來擴(kuò)充/完善自己的技術(shù)廣度。 《微服務(wù)架構(gòu)設(shè)計(jì)模式》[14] :這本書是世界十大軟件架構(gòu)師之一、微服務(wù)架構(gòu)先驅(qū) Chris Richardson 親筆撰寫,豆瓣評分 9.6。示例代碼使用 Java 語言和 Spring 框架。幫助你設(shè)計(jì)、實(shí)現(xiàn)、測試和部署基于微服務(wù)的應(yīng)用程序。
最后再推薦兩個(gè)相關(guān)的文檔:
阿里巴巴 Java 開發(fā)手冊 :https://github.com/alibaba/p3c Google Java 編程風(fēng)格指南: http://www.hawstein.com/posts/google-java-style.html
參考資料
《重構(gòu)》: https://book.douban.com/subject/30468597/
[2]《Clean Code》: https://book.douban.com/subject/4199741/
[3]《代碼大全》: https://book.douban.com/subject/1477390/
[4]《編寫可讀代碼的藝術(shù)》: https://book.douban.com/subject/10797189/
[5]write-readable-code: https://github.com/biezhi/write-readable-code
[6]《Effective java 》: https://book.douban.com/subject/3360807/
[7]《 The Clean Coder》: https://book.douban.com/subject/26919457/
[8]《架構(gòu)整潔之道》: https://book.douban.com/subject/30333919/
[9]《人月神話》: https://book.douban.com/subject/1102259/
[10]《領(lǐng)域驅(qū)動設(shè)計(jì):軟件核心復(fù)雜性應(yīng)對之道》: https://book.douban.com/subject/5344973/
[11]《代碼的未來》: https://book.douban.com/subject/24536403/
[12]《深入淺出設(shè)計(jì)模式》: https://book.douban.com/subject/1488876/
[13]《軟件架構(gòu)設(shè)計(jì):大型網(wǎng)站技術(shù)架構(gòu)與業(yè)務(wù)架構(gòu)融合之道》: https://book.douban.com/subject/30443578/
[14]《微服務(wù)架構(gòu)設(shè)計(jì)模式》: https://book.douban.com/subject/33425123/
歡迎加入我的星球,一個(gè)純 Java 面試交流圈子 !Ready!。目前星球已經(jīng)更新 3 個(gè)原創(chuàng)小冊:《Java面試進(jìn)階指北》、《從零開始寫一個(gè) RPC 框架》 、《程序員副業(yè)賺錢之路》。累計(jì)幫助 520+ 位球友提供了免費(fèi)的簡歷修改服務(wù),回答了 500+ 個(gè)問題,產(chǎn)出了 1300+ 個(gè)主題。
推薦?? :1049天,100K!簡單復(fù)盤!
推薦?? :Github掘金計(jì)劃:Github上的一些優(yōu)質(zhì)項(xiàng)目搜羅
