如果你是一個(gè)程序員虎眨, 除了編碼之外蟋软,你還需要大量的閱讀。今天我要為大家介紹幾本值得一讀的書(shū)嗽桩,包括《The Pragmatic Programmer》岳守,《The Mythical Man-month: Essays on Software Engineering》和《Clean Code: A Handbook of Agile Software Craftsmanship》。
《The Pragmatic Programmer》
絕對(duì)是書(shū)籍中的瑰寶碌冶!這不是常規(guī)地建議你編碼湿痢,編碼還是編碼的編程書(shū)。事實(shí)上,它并不限定于某種特定的編程語(yǔ)言:在這本書(shū)中的智慧適用于所有編程語(yǔ)言譬重。
這本書(shū)對(duì)許多有趣的領(lǐng)域都提出了真知灼見(jiàn)拒逮,如各種探索性編程,在代碼中編碼臀规,從模型中分離的觀點(diǎn)滩援,昂貴的工具并不產(chǎn)生更好的設(shè)計(jì),開(kāi)發(fā)一個(gè)偉大的團(tuán)隊(duì)塔嬉,管理預(yù)期玩徊,避免知識(shí)的重復(fù)等。
這本書(shū)不僅可以幫助改變編碼的習(xí)慣邑遏,還可以改變你作為一個(gè)程序員的性格佣赖。它充滿了關(guān)于如何改進(jìn)自己和代碼的實(shí)用建議。
還有一個(gè)總結(jié)了提示和檢查清單的小冊(cè)子记盒。
《The Mythical Man-month》: 關(guān)于軟件工程的散文集
非常經(jīng)典憎蛤,被奉為軟件行業(yè)的圣經(jīng)。第一次出版于1970年纪吮,但是里面的內(nèi)容比起以前俩檬,可能更適用于現(xiàn)在!
《Clean Code》: 敏捷軟件工藝的手冊(cè)
這是一本關(guān)于軟件工藝史詩(shī)般的書(shū)籍碾盟。這本書(shū)不僅會(huì)告訴你如何編寫(xiě)好的代碼棚辽,而且還提供了軟件開(kāi)發(fā)的高效途徑。照著去做的話冰肴,必將改變你的工作前景屈藐。
書(shū)中描述了編寫(xiě)干凈代碼的原則、模式和做法熙尉。里面一些關(guān)于整潔代碼的幾個(gè)案例都是開(kāi)發(fā)人員寶貴的經(jīng)驗(yàn)教訓(xùn)联逻。
請(qǐng)注意,雖然在這本書(shū)中的所有實(shí)例都是關(guān)于Java的检痰,但是從中學(xué)到的經(jīng)驗(yàn)教訓(xùn)可以應(yīng)用于任意的編程語(yǔ)言包归。
這篇文章所列出的這些書(shū)籍中,這本書(shū)出版得比較晚铅歼,所以可能更能引起年輕開(kāi)發(fā)人員的共鳴公壤。
《The Clean Coder》:專(zhuān)業(yè)程序員的行為守則
此列表中Rob Martin的第二本書(shū)。建議你在讀了《Clean Code》后椎椰,再讀這本書(shū)厦幅。《Clean Code》講的是代碼慨飘,而這本書(shū)是關(guān)于“Coder”确憨。
《Refactoring》:改善已有代碼的設(shè)計(jì)
不管你怎么努力,除非改進(jìn)它,否則缚态,你交付的代碼不會(huì)是最優(yōu)化的。有時(shí)即使工作正常堤瘤,也會(huì)實(shí)施重構(gòu)玫芦。
這本書(shū)從重構(gòu)的通用原則說(shuō)起:為什么以及什么時(shí)候重構(gòu),如何處理有關(guān)重構(gòu)的管理等等本辐。然后講述了如何實(shí)現(xiàn)改進(jìn)的過(guò)程桥帆。
這是改進(jìn)現(xiàn)有代碼必讀的書(shū)。請(qǐng)注意慎皱,所有的代碼示例用的都是Java老虫,但現(xiàn)在復(fù)制起來(lái)也很方便!
《Working Effectively With Legacy Code》
如何修改遺留代碼茫多?如何識(shí)別需要重構(gòu)的代碼部分祈匙?如何破壞重構(gòu)代碼之間的依賴(lài)關(guān)系?如何確保新的代碼能完成預(yù)期的工作天揖?如何一次一小步地重構(gòu)遺留代碼夺欲?
在這本杰出的書(shū)中,只是回答了一些關(guān)鍵的問(wèn)題今膊。如果非要用一句話總結(jié)這本書(shū)的精華些阅,那就是“寫(xiě)單元測(cè)試,重構(gòu)代碼斑唬,確保測(cè)試都通過(guò)市埋。”
遺留代碼不是一個(gè)神話恕刘,它是一個(gè)活著的傳奇缤谎!在軟件行業(yè)中沒(méi)有什么比遺留代碼更能經(jīng)受測(cè)試的考驗(yàn)了——Deepak Karanth
《Code Complete》:軟件構(gòu)建的實(shí)用手冊(cè)
在一個(gè)龐大的作品中,如果你想要閱讀所有關(guān)于編程結(jié)構(gòu)和最佳實(shí)踐的內(nèi)容雪营,那么這是本必讀書(shū)弓千。真正的百科全書(shū)式書(shū)籍——其最新版本有多達(dá)960頁(yè)!不要被這本書(shū)的厚度嚇倒献起,你可以按照自己的節(jié)奏閱讀洋访。最后,你會(huì)慶幸你閱讀了這本書(shū)谴餐。
書(shū)中解釋了軟件開(kāi)發(fā)的每個(gè)方面姻政。從代碼結(jié)構(gòu),代碼格式化岂嗓,到變量汁展、方法和類(lèi)的命名,再一路說(shuō)到管理一個(gè)團(tuán)隊(duì),對(duì)所有一切都提出了實(shí)用的建議食绿。
《Head First Design Patterns》
這本書(shū)雖然沒(méi)有覆蓋所有存在于這個(gè)世界的模式侈咕,但是會(huì)涵蓋所有你可能需要用于解決現(xiàn)實(shí)問(wèn)題的模式。它將幫助你創(chuàng)建功能性的器紧,優(yōu)雅的耀销,可重用的和靈活 的軟件。每個(gè)模式的優(yōu)劣也被明確指出铲汪。大多數(shù)關(guān)于設(shè)計(jì)模式的書(shū)籍談?wù)摰氖侨绾螌?shí)現(xiàn)模式熊尉,但這本書(shū)的作者同時(shí)還解釋了為什么以及怎么樣。
最新版本包括針對(duì)Java 8的更新——主要是Lambda掌腰。
《Peopleware: Productive Projects and Teams》
這本書(shū)并非關(guān)于編程狰住。這是一本有關(guān)管理和激勵(lì)程序員的書(shū)籍。開(kāi)發(fā)人員也應(yīng)該閱讀齿梁。很多時(shí)候催植,開(kāi)發(fā)人員,尤其是那些沒(méi)有經(jīng)驗(yàn)的開(kāi)發(fā)人員士飒,不理解管理的思維過(guò)程查邢。
《Soft Skills: The Software Developer’s Life Manual》
同樣的,這也不是一本關(guān)于編程的書(shū)酵幕。但是扰藕,卻是每一個(gè)程序員都應(yīng)該閱讀的書(shū)。
這本偉大的書(shū)著重于管理開(kāi)發(fā)人員生活的“其他”方面芳撒〉松睿可以是你生活的每一個(gè)方面——事業(yè)、生活笔刹、身體芥备、頭腦,以及不管你相信與否——還有靈魂舌菜。
作者他自己也遵循這些技術(shù)萌壳,并且獲得了成功。他的網(wǎng)站上說(shuō)日月,他能夠在他30出頭的時(shí)候放棄他的日常工作袱瓮。該作者將他的生活經(jīng)驗(yàn)整理成整齊的,主題內(nèi) 容為Career爱咬、Marketing yourself尺借、Learning、Productivity精拟、Finances, Fitness和Spirit的短章燎斩。每個(gè)篇章都很短虱歪,可以在休息時(shí)間閱讀,非常方便栅表。
你會(huì)是一個(gè)更加滿意和快樂(lè)的人笋鄙,如果你按照這本書(shū)的建議去做的話,那么你將成為一個(gè)更令人滿意和幸福的人和程序員怪瓶。
最后我們強(qiáng)調(diào)的基礎(chǔ)知識(shí)穩(wěn)扎穩(wěn)打局装,實(shí)踐要花時(shí)間練習(xí),練習(xí)在練習(xí)劳殖。不要博要專(zhuān),安安心心的學(xué)習(xí)一門(mén)編程基礎(chǔ)拨脉,然后側(cè)類(lèi)旁通哆姻。多思考,編程的精髓在與思考玫膀,明白做什么矛缨、怎么做最重要。