程序員必讀的六本書

jopen 9年前發布 | 55K 次閱讀 程序員



作為一名程序員,日常的工作除了上班擼代碼就是加班擼代碼了。擼碼其實不難,無非詢問Google,StackOverflow,解決方法和 demo一籮筐,可是擼的一手好代碼著實不易。無獨有偶,碼農一抓一大把,優秀的程序員卻不易尋覓。優秀的程序員既不可能出自各種天花亂墜的培訓機構,更 不可能來自挖掘機搖籃山東布魯斯特,大多數優秀的程序員有一個共同點,那就是自學。

為什么是自學呢?首先大學的教育不可能讓你成為專家級別的程序員,其次為了能從團隊脫穎而出必然付出更多的努力來學習。自學其實是一種很強有力的能力,一旦掌握,許多技術和問題都可以輕松搞定。

中學物理常客牛頓曾說,”如果我比別人看得更遠,那是因為我站在巨人的肩上“。他山之石,可以攻玉。閱讀大師巨匠的作品無疑是最有效的自學方式之一。業界 知名的Bob大叔是代碼整潔和面向對象編程的堅定支持推進者,其在這方面的著作可以稱得上權威。Martin Fowler同樣名聲在外,他的關于重構的著作 《重構—-改善既有代碼的設計》 應該是人手一本。閱讀諸如上面兩位大家的著作,對技術提到大有裨益。

本文講列舉六本業界牛人的著作,也是編程書籍中經典的經典,這幾本書并非簡單的教程書籍,而是教給你方法和思想來解決現實遇到的問題,提高編碼的技藝和境界。

重構—-改善既有代碼的設計

程序員必讀的六本書

何為重構,一言以蔽之,就是在不改變外部行為的前提下,有條不紊地改善代碼。本書雖然使用Java語言書寫示例代碼,但是其概念與思想同樣適合 于其他語言。書中,作者以一些平淡無奇,甚至帶有壞味道的代碼開始,一步一步地修改轉變成更加靈活,可重用的代碼。通過書中的示例,你會清楚地明白什么才 是整潔的代碼。重構其實依然成為經驗豐富的程序員的必備技能,當你想要改善重構代碼時,讀一讀這本書就會讓你有章可循,豁然開朗。

查看詳細: 亞馬遜

<h3> 代碼整潔之道 </h3>

<div> 
 <img src="https://simg.open-open.com/show/25f0503d71a11761e2c02417fd2b4307.jpg" class="alignCenter" alt="程序員必讀的六本書" width="200" height="250" /> 
 <p> 這是我最喜歡的一本書,不止一次我將它推薦給我的同事,讀者還有學生。我認為它可以稱得上軟件開發與編碼方便最好的一本書。Bob大叔我想無需做介紹,他寫過一個關于敏捷開發的系列書籍,我的書架上就有他的 <a  rel="nofollow,noindex">《代碼整潔之道》</a> , <a  rel="nofollow,noindex">《程序員的職業素養》</a> , <a  rel="nofollow,noindex">《敏捷軟件開發(原則模式與實踐)》</a> , <a  rel="nofollow,noindex">《敏捷軟件開發(原則模式與實踐)》</a> , <a  rel="nofollow,noindex">《UML for Java For Programmers》</a> , 《Extreme Programming in Practice》等這些書籍。雖然他的這些書有點老舊,但是這些書仍然很有價值,縱使數十年之后,這些書依舊受用,尤其是在面向對象編程方面。 本書不僅僅是告訴你要做什么,還教會你什么不能做。書中有關于代碼味道的一個章節,全面列舉了大多數程序員遇到的各種錯誤,其后的章節則詳細描述如何糾正 這些錯誤。比如如何將過長的switch聲明轉換成遵循開放閉合原則的模型,如何利用集成和多態。再次啰嗦一下,這本書確實值得每個程序員擁有。和上本書 一樣,書中的例子使用Java語言,但依然適合使用其他面向對象編程語言的開發者閱讀。想要擼的一手好碼,這本書必不可少。 </p>

 <p> 查看詳細: <a  rel="nofollow,noindex">亞馬遜</a> </p>

</div>

<h3> 代碼大全 </h3>

<p> <img src="https://simg.open-open.com/show/495074d602e546f392c6bd6bb54c0493.jpg" class="alignCenter" alt="程序員必讀的六本書" width="200" height="250" /> </p>

<div> 
 <p> 想必這本書大家都曾閱讀過,這就是鼎鼎大名的《代碼大全》,從某個角度看,它其實就是C++版的《代碼整潔之道》。本書的目標就是幫開發者使用 做高質的代碼寫出更好的軟件。同樣書中也涉及了編程中常見問題和最佳實踐。這本書也可以稱得上是必讀書籍,尤其是對于C和C++程序員。《代碼大全(第2 版)》中所論述的技術不僅填補了初級與高級編程實踐之間的空白,而且也為程序員們提供了一個有關軟件開發技術的信息來源。《代碼大全(第2版)》對經驗豐 富的程序員、技術帶頭人、自學的程序員及沒有太多編程經驗的學生都是大有裨益的。可以說,只要您具有一定的編程基礎,想成為一名優秀的程序員,閱讀《代碼 大全(第2版)》都不會讓您失望。 </p>

 <p> 查看詳細: <a  rel="nofollow,noindex">亞馬遜</a> </p>

</div>

<h3> 單元測試的藝術 </h3>

<div> 
 <img src="https://simg.open-open.com/show/be0ca2ac6439cdd70f10045e9aa24c09.jpg" class="alignCenter" alt="程序員必讀的六本書" width="200" height="192" /> 
 <p> 如果非要做一件改善項目,提高開發者水平的事情,我想那就是讓開發者掌握單元測試的能力。對于專業的開發者來說,單元測試是一項必備的技能,多數的程序員 卻不具備TDD(測試驅動開發)的能力。我雖然在不太遵循TDD這種模式,但是也會為自己寫的或維護的代碼編寫單元測試。對于工程來說,開源項目基本都嚴 格遵守執行單元測試,而很多商業的工程則在單元測試方面有所缺失。一個擁有單元測試的項目會變得更加容易維護和更改。本書會介紹成功的項目與失敗項目的差 別,可維護的代碼庫與不可維護的代碼庫之間的區別。本書示例為.NET代碼,但這并不會影響你了解單元測試。如果你是一名技術負責人或者項目負責人,這本 書可以幫你更好地把控項目代碼質量。如果你看Java更舒服的話,也可以看一看這本書 <a  rel="nofollow,noindex">《JUnit實戰(第2版)》</a> 。 </p>

 <p> 查看詳細: <a  rel="nofollow,noindex">亞馬遜</a> </p>

</div>

<h3> 精益軟件開發管理之道 </h3>

<div> 
 <img src="https://simg.open-open.com/show/db21810e0f932799c1757c06cc9e7f6a.jpg" class="alignCenter" alt="程序員必讀的六本書" width="200" height="284" /> 
 <p> 《精益軟件開發管理之道》是一本軟件開發方法學的書。作者從24個不同的視角,在更大的空間、時間、行業、文化背景下,考察了敏捷和精益方法。 《精益軟件開發管理之道》詳細闡述了敏捷和精益開發方法取得成功的深層原因。《精益軟件開發管理之道》包括以下內容:系統思考,以適當足夠的方式關注客 戶;技術杰出,介紹了杰出軟件開發的基礎-低耦合的架構、測試驅動的開發過程等;可靠交付,討論了工作流和日程計劃,以及反饋的重要作用;無情改進,討論 了所有精益組織的基本特點:持續不斷、永不滿足的改進;卓越的人,卓越的結果來自于卓越的人;一致的領導,討論在領導團隊中達成一致。 </p>

 <p> 查看詳細: <a  rel="nofollow,noindex">亞馬遜</a> </p>

</div>

<h3> 設計模式 可復用面向對象軟件的基礎 </h3>

<div> 
 <img src="https://simg.open-open.com/show/c714bc227e78d807241082c5e6a85266.jpg" class="alignCenter" alt="程序員必讀的六本書" width="200" height="314" /> 
 <p> 這本書要么你讀過,要么就是聽說過,這就是經典的GOF(Gang of Four 中文譯為四人幫)設計模式一書。該書作者為四人,分別是Eric Gamma, Richard Helm, Ralph Johnson, 和John Vissides。四位頂尖的面向對象領域專家精心選取了最具價值的設計實踐,加以分類整理和命名,并用簡潔而易于重用的形式表達出來。本書已經成為面向 對象技術人員的圣經和詞典,書中定義的23個模式逐漸成為開發界技術交流所必備的基礎知識和語匯。使用這些設計模式,我們可以設計出靈活,優雅和可重用的 可擴展的設計。 </p>

 <p> 查看詳細: <a  rel="nofollow,noindex">亞馬遜</a> </p>

</div>

<h3> 原文參考 </h3>

<ul> 
 <li> <a href="/misc/goto?guid=4958960567095034937" rel="nofollow,noindex">6 Books to Learn and Master Programming and Coding – Must Read</a> </li>

 <li> 原文為墻外地址 </li>

 <li> 本文對原文有刪減和修改 </li>

</ul>

</div>

</div>

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!