
溫昱著
本書是暢銷書《軟件架構設計》的第二版,本書緊緊圍繞“軟件架構設計”這一主題,立足實踐解析了軟件架構的概念,闡述了切實可行的軟件架構設計方法,提供了可操作性極強的完整的架構設計過程。另外,本書從思維方式的突破、面向對象設計、UML建模、過程與管理等關鍵過渡環節,爲廣大程序員的成長提供了切中肯綮的指導。相對第一版,本書更加側重於從程序員成長的角度寫作,高度而巧妙地結合理論與實踐,包含大量來自開發一線的實際案例。
一般,沒有什麼深入的表述,停留於表面。
個人認爲本書的作者是一位能力很強,實戰經驗豐富的人,但本書適合有一些年工作經驗和一些知識儲備的讀者閱讀,因爲跨度大,設計的知識面很廣
極力推薦!給出了從需求到設計方案的一套實踐方法流程,相對於UML來說,更系統全面,也更親民。三個很讚的地方,第一個是五大視圖十五個設計任務; 第二個是增量魯棒圖;第三個是點出了非功能需求的重要性。最近工作最深的體會是,80%的人所看到的系統功能需求的工作量其實只佔到了整個系統工作量的20%,妥妥的二八法則。茅屋能住,別墅也能住,以前覺得產品競爭力來自於功能,現在覺得非功能需求也是很大的影響因素。當然別墅比茅屋多的那部分是功能還是非功能是個模糊的問題。
很早買了實體書,看了之後已經忘的乾淨了、那時候剛接觸軟件開發沒多久,對整個架構的事情也不是很理解,現在再拾起來看了一遍電子版,感覺本書還是很貼合實際,針對軟件架構設計方面確實給出了可以落地的設計思路,結合舉例做練習,相信對初級架構師來說能有一部分指導意義
對有志成爲架構師的程序員,或者想好好研究設計方法的新手有借鑑意義。文中提供了很多專業方法和術語,參考之,可以快速進入角色。
架構即頂層設計;框架是面向編程或配置的半成品;組件是從技術維度上的複用;模塊是從業務維度上職責的劃分;系統是相互協同可運行的實體。 1.概念思想的解析 組件分爲原子組件和複合組件兩種;在特定的實踐上下文中,原子組件是不可再分的;複合組件是由其他組件(既可以是原子組件,又可以是複合組件)組合而成的;無論是原子組件還是複合組件,它們之間都可以通過交互來完成更復雜的功能。 一個架構視圖是對於從某一視角或某一點上看到的系統所作的簡化描述,描述中涵蓋了系統的某一特定方面,而省略了與此方面無關的實體。 2.對於開發人員:則最關心軟件架構方案中關於模塊劃分的決定、模塊之間的接口如何定義、甚至架構指定的開發技術和現成框架是不是最流行的等問題; 3.架構設計的實踐脈絡 【原則1】看透需求 【原則2】架構大方向正確 【原則3】設計好架構的各個方面 需求分析,領域建模,確定關鍵需求,概念架構設計,細化架構設計,架構驗證。 4.架構設計的速查手冊 需求分析活動輸出的“需求”,必須涵蓋功能、質量、約束這三個方面,這些是後續設計活動所需要的。 5.模塊劃分的4步驟方法——EDD方法 封裝驅動設計方法(Encapsulation-Driven Design方法,EDD方法)的目的是:細粒度模塊劃分。綜合運用分層、分層細化、功能模塊、通用模塊、通用機制框架化等多種手段,是該方法的特點。
很好的書,忍不住買了本紙質的沒事翻着看。記得以前有看一本大象希形面對對象分析和設計。基本上可以說跟這本書如出一轍。都是講需求到業務分析、用例抽取、領域建模、概要設計、精化。結合uml建模的。多看幾本之後,忽然覺得只會寫幾行代碼都不知道領域是什麼概念的人都是噴子。純技術論、解決具體技術難點的都只是初中級程序員,達不到系統劃分、模塊劃分的高度。搭個框架寫個技術組建就空架構都是裝逼。路漫漫修遠兮[偷笑]
這本書出於2012年,雖然現在看起來,裏面闡述的技術相對落後,但是結合當時背景,應該算是不可多得的書,工程師們都喜歡用技術說話。但是這本書中,需求和約束貫穿全書,不能說質量屬性(技術)不重要,但是總歸工程化思維是要結合實際,是要落地的,是要穩定的,互聯網野蠻生長崇尚一種敏捷開發,快速迭代開發,但互聯網始終是互聯網,技術架構能快速增長得益於行業需求,但it不僅是互聯網的it,它更是服務於其他行業的。例如工業數字化,互聯網快速迭代那一套(MVP,最小价值產品等),極難適用於工業數字化,產線如何配合,成本如何控制,該從什麼方向落地等,當一個行業利潤高度依賴成本控制、覈算,它需要不斷仿真才能逐漸在真實情況落地。工程師們是否要回歸本初,去想首先這是工程,其次再是it,架構的設計更多是參考工程化思維,而不主要是it技術。peace
架構驗證是一個必須的環節,以免後續出現大規模的返工、推到重做甚至是項目流產。要驗證的方面有功能展現方面、性能方面、技術障礙方面、框架的分層和分塊方面等等。針對不同方面可以採取不同的驗證方案,對於性能和技術難點垂直驗證是比較好的,保證關鍵模塊的技術能實現並且保證質量;對於功能和模塊劃分以及接口和通訊方式的設計水平驗證比較好,並且可以模擬想象一下模塊集成或者協作的情況。並且不管採用那種方式都可以結合演進和框架法,在驗證一項指標的同時去實現功能以及整體框架的設計合理性
任何行業 存在很多隱藏高手 都是實戰,但要可以 重複的 傳承 很難,因爲 他們都 沒有規範,沒有傳承,都是靠全身細胞一體合成,軟件架構也是一樣,說白了 就是設計的軟件 可持久性,可防範 各種風險,擴展性靈活,好用,但具體到 細節 不是書本 能完成的,書本的規範化,系統化 只能幫助起步