作 為一名程序員,日常的工作除了上班擼代碼就是加班擼代碼了。擼碼其實不難,無非詢問Google,StackOverflow,解決方法和 demo一籮筐,可是擼的一手好代碼著實不易。無獨有偶,碼農(nóng)一抓一大把,優(yōu)秀的程序員卻不易尋覓。優(yōu)秀的程序員既不可能出自各種天花亂墜的培訓(xùn)機構(gòu),更不可能來自挖掘機搖籃山東布魯斯特,大多數(shù)優(yōu)秀的程序員有一個共同點,那就是自學(xué)。
為什么是自學(xué)呢?首先大學(xué)的教育不可能讓你成為專家級別的程序員,其次為了能從團隊脫穎而出必然付出更多的努力來學(xué)習(xí)。自學(xué)其實是一種很強有力的能力,一旦掌握,許多技術(shù)和問題都可以輕松搞定。
中學(xué)物理?团nD曾說,”如果我比別人看得更遠(yuǎn),那是因為我站在巨人的肩上“。他山之石,可以攻玉。閱讀大師巨匠的作品無疑是最有效的自學(xué)方式之一。業(yè)界 知名的Bob大叔是代碼整潔和面向?qū)ο缶幊痰膱远ㄖС滞七M(jìn)者,其在這方面的著作可以稱得上權(quán)威。MartinFowler同樣名聲在外,他的關(guān)于重構(gòu)的著作 《重構(gòu)—-改善既有代碼的設(shè)計》應(yīng)該是人手一本。閱讀諸如上面兩位大家的著作,對技術(shù)提到大有裨益。
本文講列舉七本業(yè)界牛人的著作,也是編程書籍中經(jīng)典的經(jīng)典,這幾本書并非簡單的教程書籍,而是教給你方法和思想來解決現(xiàn)實遇到的問題,提高編碼的技藝和境界。

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

代碼整潔之道(Robert C. Martin力作,韓磊獻(xiàn)譯)
這是我最喜歡的一本書,不止一次我將它推薦給我的同事,讀者還有學(xué)生。我認(rèn)為它可以稱得上軟件開發(fā)與編碼方便最好的一本書。Bob大叔我想無需做介紹,他寫 過一個關(guān)于敏捷開發(fā)的系列書籍,我的書架上就有他的 《代碼整潔之道》 , 《程序員的職業(yè)素養(yǎng)》 , 《敏捷軟件開發(fā)(原則模式與實踐)》 , 《敏捷軟件開發(fā)(原則模式與實踐)》 , 《UML for Java For Programmers》 , 《Extreme Programming in Practice》等這些書籍。雖然他的這些書有點老舊,但是這些書仍然很有價值,縱使數(shù)十年之后,這些書依舊受用,尤其是在面向?qū)ο缶幊谭矫妗?本書不僅僅是告訴你要做什么,還教會你什么不能做。書中有關(guān)于代碼味道的一個章節(jié),全面列舉了大多數(shù)程序員遇到的各種錯誤,其后的章節(jié)則詳細(xì)描述如何糾正 這些錯誤。比如如何將過長的switch聲明轉(zhuǎn)換成遵循開放閉合原則的模型,如何利用集成和多態(tài)。再次啰嗦一下,這本書確實值得每個程序員擁有。和上本書 一樣,書中的例子使用Java語言,但依然適合使用其他面向?qū)ο缶幊陶Z言的開發(fā)者閱讀。想要擼的一手好碼,這本書必不可少。

代碼大全 兩屆Software Jolt Award震撼大獎得主!軟件開發(fā)世界的地圖,經(jīng)典中的經(jīng)典
想必這本書大家都曾閱讀過,這就是鼎鼎大名的《代碼大全》,從某個角度看,它其實就是C++版的《代碼整潔之道》。本書的目標(biāo)就是幫開發(fā)者使用 做高質(zhì)的代碼寫出更好的軟件。同樣書中也涉及了編程中常見問題和最佳實踐。這本書也可以稱得上是必讀書籍,尤其是對于C和C++程序員!洞a大全(第2 版)》中所論述的技術(shù)不僅填補了初級與高級編程實踐之間的空白,而且也為程序員們提供了一個有關(guān)軟件開發(fā)技術(shù)的信息來源。《代碼大全(第2版)》對經(jīng)驗豐 富的程序員、技術(shù)帶頭人、自學(xué)的程序員及沒有太多編程經(jīng)驗的學(xué)生都是大有裨益的?梢哉f,只要您具有一定的編程基礎(chǔ),想成為一名優(yōu)秀的程序員,閱讀《代碼 大全(第2版)》都不會讓您失望。

單元測試的藝術(shù) 世界級軟件開發(fā)大師,設(shè)計模式和敏捷開發(fā)先驅(qū),“Bob大叔”Robert C. Martin強力推薦
如果非要做一件改善項目,提高開發(fā)者水平的事情,我想那就是讓開發(fā)者掌握單元測試的能力。對于專業(yè)的開發(fā)者來說,單元測試是一項必備的技能,多數(shù)的程序員 卻不具備TDD(測試驅(qū)動開發(fā))的能力。我雖然在不太遵循TDD這種模式,但是也會為自己寫的或維護(hù)的代碼編寫單元測試。對于工程來說,開源項目基本都嚴(yán) 格遵守執(zhí)行單元測試,而很多商業(yè)的工程則在單元測試方面有所缺失。一個擁有單元測試的項目會變得更加容易維護(hù)和更改。本書會介紹成功的項目與失敗項目的差 別,可維護(hù)的代碼庫與不可維護(hù)的代碼庫之間的區(qū)別。本書示例為.NET代碼,但這并不會影響你了解單元測試。如果你是一名技術(shù)負(fù)責(zé)人或者項目負(fù)責(zé)人,這本 書可以幫你更好地把控項目代碼質(zhì)量。如果你看Java更舒服的話,也可以看一看這本書 《JUnit實戰(zhàn)(第2版)》 。

《精益軟件開發(fā)管理之道》
《精益軟件開發(fā)管理之道》是一本軟件開發(fā)方法學(xué)的書。作者從24個不同的視角,在更大的空間、時間、行業(yè)、文化背景下,考察了敏捷和精益方法。 《精益軟件開發(fā)管理之道》詳細(xì)闡述了敏捷和精益開發(fā)方法取得成功的深層原因。《精益軟件開發(fā)管理之道》包括以下內(nèi)容:系統(tǒng)思考,以適當(dāng)足夠的方式關(guān)注客 戶;技術(shù)杰出,介紹了杰出軟件開發(fā)的基礎(chǔ)-低耦合的架構(gòu)、測試驅(qū)動的開發(fā)過程等;可靠交付,討論了工作流和日程計劃,以及反饋的重要作用;無情改進(jìn),討論 了所有精益組織的基本特點:持續(xù)不斷、永不滿足的改進(jìn);卓越的人,卓越的結(jié)果來自于卓越的人;一致的領(lǐng)導(dǎo),討論在領(lǐng)導(dǎo)團隊中達(dá)成一致。

設(shè)計模式:可復(fù)用面向?qū)ο筌浖幕A(chǔ)
這本書要么你讀過,要么就是聽說過,這就是經(jīng)典的GOF(Gang of Four 中文譯為四人幫)設(shè)計模式一書。該書作者為四人,分別是Eric Gamma, Richard Helm, Ralph Johnson, 和John Vissides。四位頂尖的面向?qū)ο箢I(lǐng)域?qū)<揖倪x取了最具價值的設(shè)計實踐,加以分類整理和命名,并用簡潔而易于重用的形式表達(dá)出來。本書已經(jīng)成為面向 對象技術(shù)人員的圣經(jīng)和詞典,書中定義的23個模式逐漸成為開發(fā)界技術(shù)交流所必備的基礎(chǔ)知識和語匯。使用這些設(shè)計模式,我們可以設(shè)計出靈活,優(yōu)雅和可重用的 可擴展的設(shè)計。

細(xì)說PHP 51CTO“最受讀者喜愛的原創(chuàng)IT技術(shù)圖書”獎
《細(xì)說PHP》編寫的宗旨是讓讀者能擁有一本PHP方面的學(xué)習(xí)和開發(fā)使用的最好書籍,對所羅列出的每個知識點都進(jìn)行了細(xì)化和延伸,并力求講解到位,讓讀 者可以輕松地讀懂。對于幾乎每個知識點都有對應(yīng)且詳實的可運行的代碼配套,對所有實例代碼都附有詳細(xì)注釋、說明及運行效果圖。另外在每個章節(jié)的最后還為讀 者安排了大量的和本章知識點配套的授課課件及自測試題(附加在光盤中),能更好地幫助讀者掌握理論知識點,提高實際編程能力,寓學(xué)于練。對于入門與提高 PHP技術(shù)起到關(guān)鍵作用。 《細(xì)說PHP》作者高洛峰,F(xiàn)任北京LAMP兄弟連[1](易第優(yōu)教育)教學(xué)總監(jiān),五年軟件開發(fā)工作經(jīng)驗,四年IT教學(xué)工作經(jīng)驗。曾在多家上市企業(yè)擔(dān)任過技 術(shù)總監(jiān)、項目經(jīng)理、高級軟件工程師等職務(wù),具有扎實的技術(shù)功底。國內(nèi)資深的高級技術(shù)認(rèn)證講師,從事IT培訓(xùn)以來累計授課長達(dá)6000課時以上,培訓(xùn)近千名 學(xué)員成功走向IT崗位,具有豐富的IT教學(xué)經(jīng)驗。
|