• 相關文章(zhāng)
    軟件資訊
    當前位置:啓肯科技> 新聞資訊> 軟件資訊> 詳情頁

    軟件開發者必讀的(de)10本編程技術書(shū)籍推薦

    TAG: 軟件開發(10) 編程技術(7) 時(shí)間:2018-08-02 浏覽:0

    編者按:人(rén)生如逆水(shuǐ)行舟,不進則退。開發者想要保持自身的(de)競争力,做(zuò)到所向披靡,知識儲備必不可(kě)缺。這(zhè)就意味著(zhe),簡單的(de)代碼閱讀遠(yuǎn)遠(yuǎn)不夠。

    快(kuài)速叠代的(de)信息社會,技術前進的(de)速度遠(yuǎn)超人(rén)類曆史上的(de)任何時(shí)期,技術攫取呈現出碎片化(huà)的(de)特征,開發者更傾向于通(tōng)過網絡搜素尋求問答(dá)。然而,這(zhè)種淺嘗辄止的(de)閱讀方式,會給人(rén)深沉的(de)浮躁感,難以做(zuò)到爲自己切實所用(yòng)。
    新語言、新工具持續更替,讓人(rén)目不暇接,學習(xí)過程中必定伴随著(zhe)各種瑣碎的(de)問題。事實上,許多(duō)偉大(dà)的(de)技術人(rén)在以前就遇到過同樣的(de)難題,并且提出了(le)相應的(de)策略和(hé)解決方法。雖然具體問題具體對(duì)待,但其中蘊含的(de)思考方式,所凝結的(de)智慧成果,隻會曆久彌新,給開發者們以新的(de)啓迪,提綱挈領,助力自身的(de)技術升級。
    本文總結了(le)業界的(de)十本經典書(shū)籍,我們來(lái)一一探索吧。

    《The Pragmatic Programmer》


    《The Pragmatic Programmer》,即程序員(yuán)修煉之道。這(zhè)本書(shū)直擊編程陳地,适用(yòng)于所有編程語言,創建用(yòng)戶樂(yuè)于接受的(de)、可(kě)工作和(hé)易維護的(de)代碼。它不僅會改變你的(de)編程習(xí)慣,還(hái)會改變你的(de)性格。Andrew Hunt在多(duō)個(gè)行業工作過,電信、銀行、金融服務和(hé)公用(yòng)事業,還(hái)有一些外來(lái)領域,如醫學成像、圖形藝術、網絡服務。他(tā)擅長(cháng)于将已驗證的(de)技術實踐和(hé)前沿技術相結合,創造新奇而實用(yòng)的(de)方法。所以,這(zhè)本書(shū)的(de)見解涉及了(le)許多(duō)有趣的(de)領域,從個(gè)人(rén)責任到職業發展,直至保持代碼靈活和(hé)易于改編重用(yòng)的(de)架構技術,開發者能夠從中學到防止軟件變質、消除複制知識的(de)陷阱、編寫靈活、動态和(hé)易适應的(de)代碼、避免出現相同的(de)設計、用(yòng)契約、斷言和(hé)異常對(duì)代碼進行防護等内容。

    “程序員(yuán)入門書(shū)、終極書(shū)、DRY、KISS···從做(zuò)人(rén)到做(zuò)程序員(yuán),這(zhè)本書(shū)教給了(le)你一切,你所需的(de)隻是遵循書(shū)上的(de)指導。”——知乎,蕭井陌 
    “程序員(yuán)技藝具備的(de)古老特點,此書(shū)表達的(de)很清楚。此書(shū)涉及了(le)軟件工程角度,個(gè)人(rén)技藝如何配合的(de)方方面面。”——豆瓣讀書(shū),皂角菌

    《The Mythical Man-month》

    《The Mythical Man-month: Essays on Software Engineering》,即《人(rén)月(yuè)神話(huà):軟件項目管理(lǐ)之道》。這(zhè)本出版于1970年的(de)書(shū)被奉爲軟件行業的(de)《聖經》,即使在現在看來(lái)也(yě)是字字珠玑。Frederick Brooks是1999年的(de)圖靈獎得(de)主,緻辭中曾提到,“今天我們所看到的(de)計算(suàn)機體系結構、軟件工程,以及三維計算(suàn)機圖形,均受惠于布魯克斯的(de)開創性工作,是他(tā)改變了(le)這(zhè)些領域的(de)面貌。”他(tā)在軟件工程領域的(de)最廣爲人(rén)知的(de)經典著作《人(rén)月(yuè)神話(huà)》,讓軟件工程學真正進入人(rén)們的(de)視野。
    《人(rén)月(yuè)神話(huà)》對(duì)軟件開發過程的(de)幾個(gè)重要關鍵點,提出了(le)獨到的(de)見解:提倡外科手術式的(de)團隊組織;軟件項目的(de)核心概念要由很少的(de)人(rén)來(lái)完成,以保證概念的(de)完整性;軟件開發中最大(dà)的(de)風險往往不是技術的(de)缺陷,而是缺少溝通(tōng);在開發中,要保持适度的(de)文檔;在軟件開發的(de)過程中,隻有适度改進,沒有包治百病的(de)銀彈。

    “書(shū)中記述的(de)前輩們在解決這(zhè)些窘迫所體現的(de)才智和(hé)熱(rè)情,是永遠(yuǎn)值得(de)後人(rén)借鑒的(de),也(yě)将啓迪我們開拓未來(lái)之路。”——豆瓣,pythia 
    “Software Development 的(de)聖經。如果隻能讀一本書(shū),那麽是這(zhè)本書(shū)。”——豆瓣,浪人(rén)BabyL

    《Clean Code: A Handbook of Agile Software Craftsmanship》


    《Clean Code: A Handbook of Agile Software Craftsmanship》,即《代碼整潔之道》。軟件質量,不但依賴于架構及項目管理(lǐ),而且與代碼質量緊密相關。這(zhè)一點,無論是敏捷開發流派還(hái)是傳統開發流派,都必須承認。Rober C.Martin,Object Mentor公司總裁,也(yě)是面向對(duì)象設計、模式、UML、敏捷方法學和(hé)極限編程領域的(de)資深顧問。作爲編程領域的(de)佼佼者,他(tā)給出了(le)一系列行之有效的(de)整潔代碼操作實踐,并提出一種觀念:代碼質量與其整潔度成正比。本書(shū)閱讀對(duì)象爲一切有志于改善代碼質量的(de)程序員(yuán)及技術經理(lǐ),内容涵蓋從命名到重構的(de)多(duō)個(gè)編程方面,雖然書(shū)中所有的(de)例子都用(yòng)的(de)Java,但其經驗适用(yòng)于任何編程語言。

    “用(yòng)整理(lǐ)代碼的(de)決心替代創造廢話(huà)的(de)沖動。你會發現自己成爲更優秀、更樂(yuè)觀的(de)程序員(yuán)。”——豆瓣,陳 
    “本書(shū)中提倡寫代碼猶如寫文章(zhāng),對(duì)此觀點我印象深刻!如何才能寫出整潔代碼呢(ne)?總的(de)原則無非是KISS(Keep It Simple Stupid)。”——豆瓣,Wuqifu

    《The Clean Coder: A Code of Conduct for Professional Programmers》


    《The Clean Coder: A Code of Conduct for Professional Programmers》,即《代碼整潔之道:程序員(yuán)的(de)職業素養》,這(zhè)是本列表中Robert C·Martin的(de)第二本書(shū),建議(yì)在上一本書(shū)之後閱讀。成功的(de)程序員(yuán)在以往的(de)工作和(hé)生活中都曾經曆過大(dà)大(dà)小小的(de)不确定性,承受過永無休止的(de)壓力。Robert C. Martin以自己40餘年編程生涯的(de)心得(de)體會,介紹了(le)真實軟件技藝中的(de)各項原則、技術、工具和(hé)實踐,展示了(le)怎麽以自豪、自尊和(hé)自信的(de)心态進行軟件開發,怎麽取得(de)卓越表現和(hé)豐碩成果,怎麽做(zuò)到有效溝通(tōng)和(hé)确切估算(suàn),怎麽以坦誠的(de)心态面對(duì)困難,助力專業軟件開發人(rén)員(yuán)具備令人(rén)敬佩的(de)職業素養。這(zhè)本書(shū)探討(tǎo)的(de)主題可(kě)能不是你希望的(de),但一定是你需要的(de)。

    “創造性的(de)輸入,産生創造性的(de)輸出!這(zhè)本Bob大(dà)叔定義專業程序員(yuán)爲目的(de)的(de)書(shū),從個(gè)人(rén)的(de)精進練習(xí)到時(shí)間管理(lǐ),測試,需求,壓力,到理(lǐ)想的(de)團隊,描述作者的(de)程序員(yuán)修煉之道。”——豆瓣,liuwill 
    “這(zhè)本不厚的(de)書(shū),給了(le)普通(tōng)程序員(yuán)走向“專業”的(de)燈塔。知易行難,“專業”的(de)路上總有各種各樣的(de)攔路虎,也(yě)許我會再走作者标明(míng)了(le)的(de)錯路,我也(yě)并不孤單,但心裏知道這(zhè)是錯誤的(de),不要走遠(yuǎn)。每看到這(zhè)種書(shū),低沉的(de)士氣會再次振奮。”——豆瓣,銀光(guāng)

    《Refactoring: Improving the Design of Existing Code《Refactoring: Improving the Design of Existing Code》,即《重構:改善既有代碼的(de)設計》。Martin Fowler,世界軟件開發大(dà)師,在面向對(duì)象分(fēn)析設計、UML、模式、XP和(hé)重構等領域都有卓越貢獻,現爲著名軟件開發咨詢公司ThoughtWorks的(de)首席科學家。本書(shū)揭示了(le)重構的(de)過程,解釋重構的(de)原理(lǐ)和(hé)最佳實踐方式,并給出了(le)何時(shí)以及何地應該開始挖掘代碼以求改善。書(shū)中給出了(le)70多(duō)個(gè)可(kě)行的(de)重構,每個(gè)重構都介紹了(le)一種經過驗證的(de)代碼變換手法的(de)動機和(hé)技術。其中提出的(de)重構準則将幫助開發者一次一小步地修改代碼,從而減少開發過程中的(de)風險。

    “大(dà)師Martin Fowler的(de)經驗之談,看後有種醍醐灌頂、欲罷不能的(de)感覺。重構也(yě)是當今敏捷開發一項不可(kě)或缺的(de)技藝,建議(yì)所有有設計和(hé)項目開發經驗的(de)開發者都應讀一下(xià)。”——豆瓣,Kiwi

    《Working Effectively With Legacy Code》

    《Working Effectively With Legacy Code》,即《修改代碼的(de)藝術》。即使是最訓練有素的(de)開發團隊,也(yě)不能保證始終編寫出清晰高(gāo)效的(de)代碼。如果不積極地修改、挽救,随著(zhe)時(shí)間流逝,系統的(de)腐化(huà)程度會日積月(yuè)累。Michael Feathers是世界級的(de)面向對(duì)象技術專家,以豐富的(de)軟件項目開發經驗著稱。他(tā)以獨到的(de)洞察力,以及多(duō)年開發和(hé)指導軟件項目所積累的(de)豐富經驗和(hé)深厚功力,針對(duì)大(dà)型的(de)、無測試的(de)遺留代碼基,提供了(le)從頭到尾的(de)方案,讓開發者能夠更有效地應付它們,将遺留代碼基改善得(de)具有更高(gāo)性能、更多(duō)功能、更好的(de)可(kě)靠性和(hé)可(kě)控性。本書(shū)是一部裏程碑式的(de)著作,更是代碼修改技術的(de)集大(dà)成之作,可(kě)以大(dà)大(dà)提高(gāo)對(duì)代碼和(hé)軟件開發的(de)領悟力。

    “許多(duō)似曾相識的(de)代碼不斷地出現在書(shū)中,而作者舉重若輕的(de)處理(lǐ)手法,正是讓我有拍(pāi)案驚奇的(de)地方。實際上,每個(gè)手法都不是什(shén)麽很高(gāo)超的(de)技法,但正是因爲見識過類似的(de)代碼,才能體會到這(zhè)種手法的(de)價值所在。”——豆瓣,dreamhead

    《Code Complete: A Practical Handbook of Software Construction《Code Complete》,即《代碼大(dà)全》。真正的(de)一本百科全書(shū)——960頁的(de)最新修訂,讓人(rén)真切感受到沉甸甸的(de)知識。這(zhè)是一本完整的(de)軟件構建手冊,涵蓋了(le)軟件構建過程中的(de)所有細節:從軟件質量和(hé)編程思想等方面論述了(le)軟件構建的(de)各個(gè)問題,并詳細論述了(le)緊跟潮流的(de)新技術、高(gāo)屋建瓴的(de)觀點、通(tōng)用(yòng)的(de)概念,還(hái)含有豐富而典型的(de)程序示例。書(shū)中所論述的(de)技術不僅填補了(le)初級與高(gāo)級編程技術之間的(de)空白,也(yě)爲開發者們提供了(le)一個(gè)有關編程技巧的(de)信息來(lái)源,大(dà)有裨益。

    “作者的(de)寫作風格很客觀很務實。作者把每個(gè)章(zhāng)節最吸引人(rén)的(de)地方,用(yòng)巧妙的(de)方法展現出來(lái)。并且代碼構建其實也(yě)可(kě)以變得(de)非常具有藝術性。現在我很慶幸當初自己看完了(le)它。”——豆瓣,Joshua

    《Head First Design Patterns》《Head First Design Patterns》,即《深入淺出設計模式》。這(zhè)本書(shū)是大(dà)多(duō)數非技術人(rén)員(yuán)所選擇的(de)編程書(shū)籍,以诙諧、幽默、圖文并茂、打破傳統著書(shū)的(de)方式,由淺入深地詳解了(le)設計模式的(de)精神及重點。這(zhè)本書(shū)涵蓋了(le)解決現實問題所需要的(de)主要模式,幫助開發者創建功能性的(de)、優雅的(de)、可(kě)重複使用(yòng)和(hé)靈活的(de)軟件,明(míng)确權衡每個(gè)模式的(de)利弊。除去大(dà)多(duō)數書(shū)籍都談論到的(de)模式實現方法,本書(shū)也(yě)解釋了(le)模式設計緣由。全書(shū)以Java程式語言爲範例,是程式設計課程的(de)最佳教材,其最新版本包括了(le)Lambda中的(de)Java 8更新。

    “作者把原本屬于設計模式的(de)來(lái)源還(hái)給設計模式的(de)學習(xí)和(hé)應用(yòng)過程,讓讀者能夠從生活中的(de)例子随著(zhe)論述的(de)展開,逐步深入設計模式的(de)核心,這(zhè)個(gè)也(yě)是這(zhè)本書(shū)能夠不負其初衷的(de)重要原因。”——豆瓣,Jarod 
    “讀這(zhè)本書(shū)不僅僅是學習(xí)知識,而是在學習(xí)一種思考的(de)方法,學習(xí)一種認知的(de)技巧,學習(xí)一種成長(cháng)的(de)階梯。總之,用(yòng)你閑暇的(de)時(shí)間來(lái)讀這(zhè)本書(shū),并不亞于你專注的(de)工作或學習(xí)。”——豆瓣,曹操

    《Peopleware: Productive Projects and Teams》

    《Peopleware: Productive Projects and Teams》,即《人(rén)件:腦(nǎo)力密集産業的(de)人(rén)才管理(lǐ)之道》。《人(rén)件》和(hé)《人(rén)月(yuè)神話(huà)》被譽爲軟體書(shū)中「兩朵最鮮豔的(de)奇葩」。前者關注的(de)是「軟體開發」本身,後者關注的(de)是軟體開發中的(de)「人(rén)」。以往不認爲是問題的(de)領導問題、開會文化(huà)、由不同世代所組成的(de)混合團隊,以及,最常用(yòng)的(de)工具不見得(de)是助力,反而可(kě)能是阻力。以辛辣而幽默的(de)筆觸,加上務實的(de)建議(yì)、豐富的(de)專案經驗,這(zhè)本書(shū)一出版就引起轟動,一針見血地指出了(le)團隊管理(lǐ)的(de)問題點──腦(nǎo)力密集産業的(de)核心是人(rén),應該給予這(zhè)些工作者充分(fēn)的(de)自由與信任。

    “管理(lǐ),不僅僅是技術,更是充滿人(rén)文精神的(de)藝術。《人(rén)件》中的(de)一些很精辟的(de)箴言遠(yuǎn)遠(yuǎn)超過了(le)軟件管理(lǐ)的(de)範疇。沒有大(dà)量的(de)數字、精密的(de)論證,也(yě)不需要這(zhè)些。這(zhè)正是《人(rén)件》深入淺出的(de)長(cháng)處。”——豆瓣,QingRen

    《Soft Skills: The Software Developer’s Life Manual》

    《Soft Skills: The Software Developer’s Life Manual》,即《軟技能:代碼之外的(de)生存指南(nán)》。同樣,這(zhè)不是一本關于編程的(de),卻是每個(gè)開發者都應該讀的(de)書(shū)。John Sonmez是“Simple Programmer”網站的(de)創始人(rén),也(yě)是軟件開發人(rén)員(yuán)的(de)人(rén)生導師,幫助軟件工程師、程序員(yuán)和(hé)其他(tā)專業技術人(rén)員(yuán)推動事業進步,過上更充實的(de)生活。這(zhè)本書(shū)涉及開發者的(de)生活習(xí)慣,又包括思維方式,凸顯技術中“人(rén)”的(de)因素,全面講解軟件行業從業人(rén)員(yuán)所需知道的(de)所有“軟技能”:從揭秘面試的(de)流程到精耕細作出一份殺手級簡曆,從創建大(dà)受歡迎的(de)博客到打造自身,從提高(gāo)自己工作效率到與如何與“拖延症”做(zuò)鬥争,甚至包括如何投資不動産,如何關注自己的(de)健康。

    說點什(shén)麽吧
    • 全部評論(0
      還(hái)沒有評論,快(kuài)來(lái)搶沙發吧!