數(shù)人云之前給大家分享了《成為“偉大”程序員需要學(xué)會(huì)的9種“姿勢(shì)”》對(duì)于想轉(zhuǎn)型成為架構(gòu)師的童鞋們來(lái)說(shuō)最急缺的是什么呢?當(dāng)然是經(jīng)驗(yàn)和實(shí)踐案例浮毯,數(shù)人云今天精挑細(xì)選了19本架構(gòu)師必讀經(jīng)典完疫,想往這個(gè)方向發(fā)展的小伙伴千萬(wàn)不能錯(cuò)過(guò)。
軟件架構(gòu)已經(jīng)成為每個(gè)軟件項(xiàng)目的重要組成部分债蓝,在構(gòu)建一個(gè)可靠的軟件體系結(jié)構(gòu)失壳鹤,可以選擇系統(tǒng)的重要部分,考慮這些部分如何組合在一起饰迹,并在設(shè)計(jì)這些系統(tǒng)時(shí)做出關(guān)鍵的決策芳誓,它是任何軟件開(kāi)發(fā)項(xiàng)目的基礎(chǔ)。
高級(jí)開(kāi)發(fā)和軟件架構(gòu)師之間存在著巨大的差異啊鸭,作為一名架構(gòu)師锹淌,需要更多的經(jīng)驗(yàn)來(lái)設(shè)計(jì)最終的解決方案。
軟件架構(gòu)理論與實(shí)踐同樣重要赠制,因此本文為軟件開(kāi)發(fā)團(tuán)隊(duì)和架構(gòu)師推薦了一份今年最好的軟件架構(gòu)書籍列表赂摆,這些書籍對(duì)于理解并有效地應(yīng)用軟甲架構(gòu)原則在實(shí)際的項(xiàng)目上非常有價(jià)值。
書名:《Beyond Software Architecture: Creating and Sustaining Winning Solutions》
作者:Luke Hohmann
下載鏈接:http://www.ithov.com/book/project/softwaredev/40703.shtml
本書為開(kāi)發(fā)人員提供了可以使用的實(shí)用技術(shù)來(lái)提高生產(chǎn)力,通過(guò)幾個(gè)合乎邏輯的章節(jié)烟号,涵蓋了典型的架構(gòu)問(wèn)題绊谭,例如:可移植性、可用性汪拥、性能达传、分層、API設(shè)計(jì)和安全性喷楣,以及其他有價(jià)值的材料注入業(yè)務(wù)和產(chǎn)品管理方面的軟件架構(gòu)趟大,這是常常被忽略或者遺忘的,本書提供了關(guān)于現(xiàn)實(shí)世界中創(chuàng)建成功應(yīng)用解決方案的寶貴簡(jiǎn)介和經(jīng)驗(yàn)铣焊。
書名: 《Domain-Driven Design: Tackling Complexity in the Heart of Software》
作者:Eric Evans
下載鏈接:http://download.csdn.net/download/iidonotknow119/7410739
這是一本很棒的書逊朽,關(guān)于如何讓應(yīng)用的設(shè)計(jì)與正在解決的問(wèn)題領(lǐng)域模型相匹配,Eric認(rèn)為曲伊,學(xué)習(xí)相關(guān)的問(wèn)題領(lǐng)域要在項(xiàng)目結(jié)束時(shí)如同最初一樣叽讳,所以重構(gòu)是他技術(shù)的一個(gè)重要部分。
本書為讀者提供了一種系統(tǒng)的領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)方法以及一套廣泛的設(shè)計(jì)最佳實(shí)踐坟募,基于經(jīng)驗(yàn)的技術(shù)和基本原則岛蚤,促進(jìn)面向復(fù)雜領(lǐng)域的軟件項(xiàng)目開(kāi)發(fā),本書包含了許多基于實(shí)際項(xiàng)目的例子懈糯,用以說(shuō)明域驅(qū)動(dòng)設(shè)計(jì)在現(xiàn)實(shí)軟件開(kāi)發(fā)中的應(yīng)用涤妒。
書名: 《97 Things Every Software Architect Should Know: Collective Wisdom from the Experts》
作者:Richard Monson-Haefel
下載鏈接:http://download.csdn.net/download/llwl1982/7791289
在這本真正獨(dú)特的技術(shù)書籍中,一些軟件架構(gòu)師在關(guān)鍵的開(kāi)發(fā)問(wèn)題上提出了一些寶貴的意見(jiàn)赚哗,這些意見(jiàn)已經(jīng)超越了技術(shù)本身的價(jià)值她紫。包括Neal Ford、Michael Nygard在內(nèi)的40多位知名架構(gòu)師屿储,在本書中根據(jù)其自身經(jīng)驗(yàn)讓開(kāi)發(fā)者了解如何消除復(fù)雜性贿讹,增強(qiáng)能力。像要成為一名成功的軟件架構(gòu)師够掠,需要精通業(yè)務(wù)和技術(shù)民褂,本書會(huì)告訴讀者頂級(jí)架構(gòu)師都認(rèn)為哪些東西才是最重要的。
書名:《Enterprise Integration Patterns Designing, Bui**lding, and Deploying Messaging Solutions》
作者:Gregor Hohpe疯潭、Bobby Woolf
下載鏈接:http://download.csdn.net/download/xcz911/1479592
書名:《Software Architecture in Practice 》
作者:Len Bass赊堪、Paul Clements、Rick Kazman
下載鏈接:http://www.ithov.com/book/project/softwaredev/40794.shtml
本書著重于軟件體系結(jié)構(gòu)中的關(guān)鍵主題:“ilities”竖哩、“Patterns/Styles”雹食,記錄體系結(jié)構(gòu)和評(píng)估體系結(jié)構(gòu),作者分享他們自身的經(jīng)驗(yàn)期丰,涵蓋了設(shè)計(jì)群叶、制定和驗(yàn)證系統(tǒng)的基本技術(shù)主題吃挑,還強(qiáng)調(diào)了大型系統(tǒng)設(shè)計(jì)的業(yè)務(wù)上文的重要性。根據(jù)不同的案例研究街立,描述成功的軟件架構(gòu)是什么樣的舶衬。
書名:《Design Patterns: Elements of Reusable Object-Oriented Software 》
作者:Erich Gamma、Ralph Johnson赎离、John Vlissides逛犹、Richard Helm、Grady Booch
下載鏈接:http://download.csdn.net/download/sinat_29468539/8859307
本書的作者們梁剔,對(duì)于面向?qū)ο筌浖脑O(shè)計(jì)很有經(jīng)驗(yàn)虽画,為常見(jiàn)的設(shè)計(jì)問(wèn)題提供了簡(jiǎn)單但又強(qiáng)大的解決方案,介紹了23種模式荣病,允許設(shè)計(jì)人員創(chuàng)建更靈活码撰、優(yōu)雅、最終可重用的設(shè)計(jì)个盆,而不必重新發(fā)現(xiàn)設(shè)計(jì)方案本身脖岛,通過(guò)本書,可以了解這些重要的模式如何適應(yīng)軟件開(kāi)發(fā)過(guò)程颊亮,以及如何利用它們來(lái)最有效地解決設(shè)計(jì)問(wèn)題柴梆。
書名: 《The Process of Software Architecting》
作者: Peter Eeles、Peter Cripps
下載鏈接:http://download.csdn.net/download/thedeep/5902661
任何成功的軟件系統(tǒng)都離不開(kāi)好的軟件架構(gòu)终惑,有效地架構(gòu)需要清楚地了解組織角色绍在、工作、執(zhí)行的活動(dòng)雹有,以及執(zhí)行的最佳順序偿渡。在本書中可以找到以下問(wèn)題的答案,在典型的軟件開(kāi)發(fā)項(xiàng)目中件舵,架構(gòu)師處于什么角色卸察?軟件架構(gòu)文檔如何滿足不同利益相關(guān)者的需求脯厨?可重用資產(chǎn)的適用性在設(shè)計(jì)的過(guò)程中铅祸,架構(gòu)師的角色對(duì)于需求定義、體系結(jié)構(gòu)的推導(dǎo)等等合武。
書名:《Just Enough Software Architecture: A Risk-Driven Approach》
作者:George H. Fairbanks
下載鏈接:http://download.csdn.net/download/rokiechen/9890695
這是軟件開(kāi)發(fā)人員的實(shí)用指南临梗,與其他軟件架構(gòu)書籍不同,它交到風(fēng)險(xiǎn)驅(qū)動(dòng)的架構(gòu)稼跳,本書旨在使架構(gòu)與所有軟件開(kāi)發(fā)人員相關(guān)聯(lián)盟庞,開(kāi)發(fā)人員需要了解如何使用約束作為指導(dǎo)Rails來(lái)確保預(yù)期的結(jié)果,以及看似微笑的更改如何影響系統(tǒng)的屬性汤善。
本書會(huì)讓讀者清楚自己在做什么什猖,除此之外票彪,還強(qiáng)調(diào)工程學(xué),提供了一些實(shí)用性的建議不狮,軟件設(shè)計(jì)決策影響體系結(jié)構(gòu)降铸,反之亦然,本書的方法通過(guò)描述具有不同抽象層次的模型摇零,從架構(gòu)到數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)推掸。
書名:《Software Architecture Patterns》
作者:Mark Richards
下載鏈接:http://download.csdn.net/download/dotphoenix/9624944
Mark Richards是一位經(jīng)驗(yàn)豐富的軟件架構(gòu)師,其在應(yīng)用驻仅、集成和企業(yè)架構(gòu)方面具有相當(dāng)大的成就谅畅,自1983年起,就活躍在軟件行業(yè)噪服,是o'reilly書籍和視頻的作者和主持人毡泻。
任何應(yīng)用程序或系統(tǒng)的成功都取決于使用的體系結(jié)構(gòu)模式,通過(guò)描述體系結(jié)構(gòu)的總體特征芯咧,這些模式不僅指導(dǎo)設(shè)計(jì)人員和開(kāi)發(fā)人員如何設(shè)計(jì)組件牙捉,還決定了這些組件應(yīng)該如何交互的方式,本書包含了基于幾個(gè)體系結(jié)構(gòu)和軟件開(kāi)發(fā)質(zhì)量屬性的每個(gè)模式分析敬飒,在本書中邪铲,讀者可以看到更多關(guān)于分層架構(gòu)、事件驅(qū)動(dòng)架構(gòu)无拗、微內(nèi)核體系結(jié)構(gòu)带到、微服務(wù)體系結(jié)構(gòu)、基于空間的體系結(jié)構(gòu)等相關(guān)信息英染。
書名:《Continuous Delivery: Reliable Software Releases Through Build揽惹,Test,and Deployment Automation》
作者:Jez Humble四康、David Farley
下載鏈接:http://download.csdn.net/download/alecplus2005/9468008
將應(yīng)用發(fā)布給用戶通常是一個(gè)痛苦搪搏、危險(xiǎn)和耗時(shí)的過(guò)程,本書闡述了使更高質(zhì)量闪金、有價(jià)值的功能向用戶提供快速疯溺、增量交付的原則和技術(shù)實(shí)踐,通過(guò)對(duì)構(gòu)建哎垦、部署和測(cè)試過(guò)程的自動(dòng)化囱嫩,以及開(kāi)發(fā)人員、測(cè)試人員和運(yùn)維之間的協(xié)作漏设,交付團(tuán)隊(duì)可以在幾個(gè)小時(shí)的時(shí)間內(nèi)發(fā)布變更墨闲,不管項(xiàng)目的規(guī)模大小,或代碼庫(kù)的復(fù)雜性郑口。
Jez Humble首先提出了一個(gè)快速、可靠、低風(fēng)險(xiǎn)的交付過(guò)程基礎(chǔ)爬虱,然后他們引入了部署管道,這是一個(gè)用于管理所有變更的自動(dòng)化過(guò)程雁仲,從簽入到發(fā)布,他們還討論了支持持續(xù)交付所需的生態(tài)系統(tǒng)琐脏,從基礎(chǔ)設(shè)施攒砖、數(shù)據(jù)和配置管理到治理,作者介紹了一些技術(shù)日裙,包括自動(dòng)化的基礎(chǔ)設(shè)施管理和數(shù)據(jù)遷移吹艇,以及虛擬化的使用,對(duì)于每個(gè)人昂拂,他們回顧關(guān)鍵問(wèn)題受神,確定最佳實(shí)踐,并演示如何降低風(fēng)險(xiǎn)格侯,覆蓋范圍包括:自動(dòng)化建設(shè)的各個(gè)方面鼻听,集成、測(cè)試和部署軟件联四,實(shí)現(xiàn)部署管道在團(tuán)隊(duì)和組織水平撑碴,改善合作開(kāi)發(fā)人員、測(cè)試人員和運(yùn)維團(tuán)隊(duì)之間的協(xié)作朝墩,逐步發(fā)展特性在大型的分布式團(tuán)隊(duì)醉拓,實(shí)施一個(gè)有效的配置管理策略,自動(dòng)化驗(yàn)收測(cè)試收苏,從分析到實(shí)現(xiàn)亿卤,測(cè)試能力和其他非功能性需求和實(shí)現(xiàn)部署的零宕機(jī)版本,此外鹿霸,它們還討論了如何管理基礎(chǔ)設(shè)施排吴,數(shù)據(jù),組件和依賴關(guān)系以及如何導(dǎo)航風(fēng)險(xiǎn)管理懦鼠、遵從性和審計(jì)钻哩。
書名:《 Scalability Rules: 50 Principles for Scaling Web Sites》
作者:Martin L. Abbott、Michael T. Fisher
下載鏈接:http://download.csdn.net/download/xueyufish/4547357
對(duì)于任何處理在線業(yè)務(wù)的人來(lái)說(shuō)葛闷,這都是必不可少的讀物憋槐,本書確保了戰(zhàn)略設(shè)計(jì)原則適用于日常挑戰(zhàn)双藕,它是設(shè)計(jì)和構(gòu)建可伸縮系統(tǒng)的一個(gè)有洞察力的淑趾、實(shí)用指南。由于現(xiàn)代系統(tǒng)的復(fù)雜性忧陪,可伸縮性的考慮應(yīng)該是體系結(jié)構(gòu)和實(shí)現(xiàn)過(guò)程中不可或缺的一部分扣泊。
Martin L. Abbott近范、Michael T. Fisher將可伸縮性從“Black Art”轉(zhuǎn)變?yōu)橐惶赚F(xiàn)實(shí)的、與技術(shù)無(wú)關(guān)的最佳實(shí)踐延蟹,用于支持幾乎任何環(huán)境中的超增長(zhǎng)评矩,包括前端和后端系統(tǒng),對(duì)于架構(gòu)師來(lái)說(shuō)阱飘,他們提供了關(guān)于創(chuàng)建和評(píng)估設(shè)計(jì)的強(qiáng)有力新見(jiàn)解斥杜。對(duì)于開(kāi)發(fā)人員,他們共享特定的技術(shù)來(lái)處理從數(shù)據(jù)庫(kù)到狀態(tài)的所有事情沥匈,對(duì)于管理者來(lái)說(shuō)蔗喂,他們?cè)谀繕?biāo)制定、決策制定和與技術(shù)團(tuán)隊(duì)的交互方面提供了寶貴的幫助高帖,無(wú)論你的角色是什么缰儿,都可以為設(shè)定優(yōu)先級(jí)和最大限度找到實(shí)際的利益指導(dǎo)。
書名:《Microservices vs Service-Oriented Architecture》
作者: Mark Richards
下載鏈接:http://download.csdn.net/download/ker79/355862
微服務(wù)架構(gòu)近來(lái)獲得了廣泛的關(guān)注散址,它聽(tīng)起來(lái)很像面向服務(wù)的體系結(jié)構(gòu)乖阵,這兩種架構(gòu)都專注于將大型單片應(yīng)用程序拆分為小型獨(dú)立服務(wù)的結(jié)合,并且都有簡(jiǎn)化開(kāi)發(fā)的承諾预麸,讀者可以在本書中找到關(guān)鍵問(wèn)題的答案:是什么讓它們與眾不同瞪浸?微服務(wù)真的只是SOA做得對(duì)嗎?這兩種架構(gòu)的不同之處以及微服務(wù)真的比SOA好嗎吏祸?
書名:《Software Architecture: Foundations默终、Theory、and Practice》
作者: R. N. Taylor犁罩、N. Medvidovic齐蔽、E. M. Dashofy
下載鏈接:http://download.csdn.net/download/jianxiaodanmomo/8772415
這是一本關(guān)于軟件架構(gòu)非常實(shí)用的書籍,但如果你不喜歡以“學(xué)術(shù)”風(fēng)格寫的書床估,這本書不適合你含滴,軟件架構(gòu)是開(kāi)發(fā)大型、實(shí)用的軟件密集型應(yīng)用程序的基礎(chǔ)丐巫,本書不關(guān)注一種方法谈况、代碼、工具递胧、或者過(guò)程碑韵,而是廣泛地調(diào)查軟件架構(gòu)技術(shù),當(dāng)培訓(xùn)者和專業(yè)人員可以選擇合適的工具來(lái)做手頭的工作缎脾。
書名:《Essential Software Architecture》
作者:Ian Gorton
下載鏈接:http://download.csdn.net/download/u011433684/10007451
如今祝闻,軟件行業(yè)充斥著“技術(shù)架構(gòu)師”和“首席架構(gòu)師”之類的職位,但許多人都覺(jué)得“架構(gòu)”是專業(yè)軟件開(kāi)發(fā)中最被濫用和最不理解的術(shù)語(yǔ)之一遗菠,Gorton試圖解決這一困境联喘,它簡(jiǎn)明地描述了作為一個(gè)軟件架構(gòu)師所需要知識(shí)的基本要素和關(guān)鍵技能华蜒,這些解釋好漢了架構(gòu)思考、實(shí)踐和支持技術(shù)的要點(diǎn)豁遭,它們從對(duì)結(jié)構(gòu)和質(zhì)量屬性的一般理解叭喜,從中間件組件和面向服務(wù)的體系結(jié)構(gòu)到最新的技術(shù),如模型驅(qū)動(dòng)的體系結(jié)構(gòu)蓖谢、軟件產(chǎn)品線捂蕴、面向方面的設(shè)計(jì)和語(yǔ)義Web,這些都影響了未來(lái)的軟件系統(tǒng)闪幽。
書名:《Refactoring in Large Software Projects: Performing Complex Restructurings Successfully》
作者:Martin Lippert启绰、Stephen Roock
下載鏈接:http://download.csdn.net/download/alyfore/9393000
重構(gòu)是大型軟件項(xiàng)目的一個(gè)重要主題,特別是在遵循敏捷方法的項(xiàng)目中沟使,考慮到體系結(jié)構(gòu)隨著需求的變化而變化委可,它提供了真實(shí)重構(gòu)項(xiàng)目的真實(shí)體驗(yàn),并展示了如何重構(gòu)軟件以確保它是高效腊嗡、新鮮和可適應(yīng)的着倾。
書名:《12 Essential Skills for Software Architects》
作者:Dave Hendricksen
下載鏈接:http://download.csdn.net/download/curfeu/4087056
對(duì)于許多開(kāi)發(fā)人員來(lái)說(shuō),這些技能并不是與生俱來(lái)的燕少,他們很少在正式的培訓(xùn)中得到解決問(wèn)題的方案卡者,現(xiàn)在,經(jīng)驗(yàn)豐富的軟件設(shè)計(jì)師Dave Hendricksen會(huì)幫助填補(bǔ)這一空白客们,讓組織影響更大崇决,并迅速轉(zhuǎn)移到職業(yè)生涯的下一個(gè)層次,對(duì)于架構(gòu)師來(lái)說(shuō)底挫,僅僅擁有技術(shù)技能是不夠的恒傻,軟件能同樣重要的是作為一名架構(gòu)師有效地生活,這本書對(duì)架構(gòu)師所需要的12項(xiàng)技能進(jìn)行了清晰而詳細(xì)的討論建邓,如果你是一名開(kāi)發(fā)者盈厘,并渴望成為一名叫架構(gòu)師,本書會(huì)對(duì)你非技術(shù)技能有所幫助官边。
書名:《Reactive Design Patterns》
作者:Roland Kuhn Dr沸手、Brian Hanafee、Jamie Allen
下載鏈接:http://download.csdn.net/download/u011433684/9992010
反應(yīng)式設(shè)計(jì)模式注簿,用于構(gòu)建具有彈性契吉、響應(yīng)性的消息驅(qū)動(dòng)分布式系統(tǒng),本書中诡渴,讀者可以得到消息傳遞捐晶、流控制、資源管理和并發(fā)性的模式以及類似于測(cè)試友好設(shè)計(jì)之類的實(shí)際問(wèn)題解決方案,所有的模式都包括試用Scala和Akka的具體案例租悄。
書名:《Object-Oriented Design Heuristics》
作者:Arthur J. Riel
下載鏈接:http://download.csdn.net/download/chenxu_ustc/1269736
最后一本書是關(guān)于“面向?qū)ο笤O(shè)計(jì)啟發(fā)法”,這是一本優(yōu)秀的面向?qū)ο箝_(kāi)發(fā)手冊(cè)恩袱,提供疼的基礎(chǔ)經(jīng)驗(yàn)指導(dǎo)方針泣棋,幫助開(kāi)發(fā)人員做出正確的設(shè)計(jì)決策,本書為了解面向?qū)ο箝_(kāi)發(fā)的基礎(chǔ)知識(shí)的讀者提供了下一步的目標(biāo)畔塔,需要知道他們是否做對(duì)了潭辈,并做出正確的選擇。
以上是小數(shù)給大家推薦的19本架構(gòu)師必讀書籍澈吨,當(dāng)然學(xué)無(wú)止境把敢,關(guān)于應(yīng)用開(kāi)發(fā)文檔的另一個(gè)主要來(lái)源是GitHub,不僅可以找到關(guān)于架構(gòu)方面的文檔谅辣,還可以找到關(guān)于Docker修赞、彈性搜索、TDD桑阶、DDD柏副、BDD、CI等等蚣录。
原文作者: DZone
原文鏈接:https://www.tuicool.com/articles/Ijmyauq