程序員書庫(ID:OpenSourceTop) 編譯
鏈接:https://javarevisited.blogspot.com/2018/02/5-must-read-books-to-become-software-architect-solution.html
經(jīng)常有一些高級Java工程師問我:我想要成為一名軟件架構(gòu)師,要怎么做呢?需要讀哪些書,或者有什么資源,需要考什么證書么以及成為一個軟件架構(gòu)師需要多少經(jīng)驗等問題。本文就從軟件架構(gòu)師的角度選擇了5本最好的并且是必讀的書籍
因為架構(gòu)是一個非常廣的主題,它和你如今所處的工作領(lǐng)域息息相關(guān),因此這些書并不能涉及到軟件設(shè)計相關(guān)的方方面面,但是卻會為你提供構(gòu)建一個安全和可維護軟件所需的基本工具和技術(shù)。
一般而言,開發(fā)人員專注于底層細節(jié),例如類和方法,而架構(gòu)師則側(cè)重于高層細節(jié),例如組件之間的交互,持久層應(yīng)該如何表現(xiàn),使用哪種技術(shù),什么是非功能性需求等等。
話不多說,一起來看看這5本書分別是哪些:
1. 《企業(yè)應(yīng)用架構(gòu)模式》
這本書就不需要多說什么了,它的經(jīng)典程度和GOF不相上下,每個程序員都應(yīng)該去讀一下。Martin Fowler同時也是我最喜歡的作者之一,也是軟件開發(fā)領(lǐng)域的一位導(dǎo)師。他將40多種經(jīng)常出現(xiàn)的解決方案轉(zhuǎn)化成模式,最終寫成這本能夠應(yīng)用于任何一種企業(yè)應(yīng)用平臺的、關(guān)于解決方案的、不可或缺的手冊。
這本書獲得了2003年度美國軟件開發(fā)雜志圖書類的生產(chǎn)效率獎和讀者選擇獎。相信看完這本書,對于分層思想和分層中具體模式的運用都會有大幅提高。
2. 《軟件構(gòu)架實踐》
這本書作為入門學習了解軟件架構(gòu)背后的基本概念來說是個不錯的選擇,但是內(nèi)容相對有點抽象,很多程序員可能不會喜歡。你可以將本書用作教科書來了解軟件架構(gòu)。
作者圍繞著軟件構(gòu)架影響周期展開。每個周期都表明了軟件構(gòu)架是如何產(chǎn)生影響的,同時它又受哪些因素的影響。軟件構(gòu)架在特定的背景下發(fā)揮著關(guān)鍵性的作用。這些背景包括技術(shù)環(huán)境、項目的生命周期、組織的業(yè)務(wù)概況和架構(gòu)師的專業(yè)實踐。作者還進一步延展了質(zhì)量屬性,仍然以構(gòu)架理念為中心(用單獨一章內(nèi)容來專門介紹每個屬性),進一步拓寬了軟件構(gòu)架模式。
3. 《Clean Architecture》
來自傳奇人物Robert C. Martin(“Bob大叔”)的實用軟件架構(gòu)解決方案,Bob大叔同時也是代碼整潔之道的作者,這本書已然成為專業(yè)程序員必讀的書籍之一,而且它是2017年9月才出版,你完全不需要擔心它過時。
干凈的架構(gòu)對于每一個軟件架構(gòu)師、系統(tǒng)分析師、系統(tǒng)設(shè)計師和軟件管理人員來說都是必不可少的,因此,假如你想要成為頂尖的軟件架構(gòu)師這本書一定是必不可少的
4. 《微服務(wù)設(shè)計》
另一本了解現(xiàn)代,分布式軟件設(shè)計和體系結(jié)構(gòu)的好書,尤其是微服務(wù)這一塊,例如Uber,F(xiàn)acebook,NetFlix等。如果你想離開從單一應(yīng)用程序到微服務(wù)的世界,那么這是你應(yīng)該閱讀的書。
本書全面介紹了微服務(wù)的建模、集成、測試、部署和監(jiān)控,通過一個虛構(gòu)的公司講解了如何建立微服務(wù)架構(gòu)。主要內(nèi)容包括認識微服務(wù)在保證系統(tǒng)設(shè)計與組織目標統(tǒng)一上的重要性,學會把服務(wù)集成到已有系統(tǒng)中,采用遞增手段拆分單塊大型應(yīng)用,通過持續(xù)集成部署微服務(wù),等等。
5. 《領(lǐng)域驅(qū)動設(shè)計》
簡而言之,這本書提供了深入的架構(gòu)洞察力,并幫助您在不斷變化的環(huán)境中創(chuàng)建強大的系統(tǒng),最重要的是,Eric Evans用開發(fā)人員可以理解的語言來描述,這是非常難得
書中給出了領(lǐng)域驅(qū)動設(shè)計的系統(tǒng)化方法,并將人們普遍接受的一些實踐綜合到一起,融入了作者的見解和經(jīng)驗,展現(xiàn)了一些可擴展的設(shè)計新實踐、已驗證過的技術(shù)以及便于應(yīng)對復(fù)雜領(lǐng)域的軟件項目開發(fā)的基本原則。
軟件架構(gòu)師需要具備軟件各個方面的知識,例如設(shè)計,編碼,維護,部署,支持等,并且這樣的能力只能通過不斷擴展自己知識儲備和經(jīng)驗來獲得。上面的這些書籍都能助你一臂之力
這就是進階成為軟件架構(gòu)師,技術(shù)領(lǐng)導(dǎo)者必讀的書籍。如果你是一位擁有8到10年經(jīng)驗的高級Java開發(fā)人員,并且想要成為軟件架構(gòu)師,那么這些就是需要閱讀的書籍,他可以擴展你的視野和知識。
●輸入m獲取到文章目錄
聯(lián)系客服