
Simon Brown
通常,人們對軟件架構師持兩種錯誤的看法。有人認爲軟件架構師是一種高高在上的職位;有人認爲軟件架構師完全不懂開發,只是會畫條條框框的指揮家。本書將打破這些傳統的認知,模糊軟件開發和架構在流程中的界限,進而爲軟件架構正名。本書是一本強調實踐、注重實效、輕量級、面向開發者的軟件架構指南。如果你是一名想成爲軟件架構師的程序員,那麼本書就是爲你準備的。
羅列了不少需要思考的點,可根據實際自由選擇,但是還得思考所選擇的在當下的場景如何符合自己的需求。
找到了一些不錯的觀點,比如恰如其分的預先架構設計等等,書中有些內容(額,還是說所要表述問題痛點)需要經歷過太有更深的理解與感悟。所以這本書說是對開發實踐着的指南,不知道是翻譯的問題還是...並沒有達到預期的效果,當然我覺得是值得再review一遍的價值
該書最有用的部分就是第一、第二、第三部分涵蓋的軟件架構概念和軟件架構要遵循的方法論以及理論知識的介紹和詮釋,剩餘部分都是一些過時的實操方法以及工具的該如何使用,完全可以不看。要真正理解這些理論部分必須有很多年實際的軟件架構和編碼經驗做爲支撐,不然會覺得這些理論都是虛無縹緲,無法指導現實。從我的過往經驗來看,作者是對的,作者確實精準描述了團隊軟件架構涉及的方方面面,並且能做了理論化,讓軟件架構可以以這樣的理論方式傳授給其他正在進入這個領域的架構師。
沒有廢話,直接了當。無論是對軟件開發人員,軟件架構師,還是公司的領導者都應該讀一讀。看看什麼是軟件架構,怎麼做軟件架構。
這是一本‘指南'型圖書。作者會給你一個圖景以及達到它的關鍵技術指引,你可以得到一個思考問題的框架,而非一條道路或一套方法。
架構反映了使一個系統成型的重要設計決策,而重要性則通過改變的成本來衡量。 從本質上講,格雷迪認爲重要決策即“架構”,其他的都是“設計”。 在現實世界中,架構和設計的區別並不明顯,但該定義確實爲我們提供了一個基準,去思考在我們的軟件系統中哪些可能是重要的或者說“架構的”。比如說,這可能包括: ❑ 系統的形態(例如,客戶端-服務器、基於Web、原生移動客戶端、分佈式、異步,等等); ❑ 軟件系統的結構(例如,組件、層、交互,等等); ❑ 技術選擇(即編程語言、部署平臺,等等); ❑ 框架選擇(例如,Web MVC框架、持久性/ORM框架,等等); ❑ 設計方法/模式選擇(例如,針對性能、可伸縮性、可用性等的方法)。
只有深度參與過軟件開發,踩過坑碰過壁才能理解本書的精髓——架構即關鍵決策。至於用什麼工具用什麼方法來做架構設計沒那麼重要,初學者不理解架構即關鍵決策,用了這些工具也不會產生太多價值。在AI時代這句話的價值還在不斷提升,TDD, DDD這些方法論AI比人更清楚,遵守的更好,這時人的價值就是做關鍵決策,一旦制定且團隊共識,便是AI開展工作的限制條件,不得越線。關鍵決策要少,不能讓AI束手束腳,但又不能缺,不能讓AI天馬行空,燒了大量token結果不能用
相較於普通的開發者,架構師需要關注的不是實現的細節,而是一個完整的軟件交付週期,囊括了對軟件的良好設計、軟件實現的監控、技術風險預估與規避、及時的項目交付等。
軟件開發文檔部分可能有點意思,其他部分有點囉哩囉嗦的。快速瀏覽式看完!
我可能更期待作者舉幾個具體的例子來說明他的觀點。書裏現有的內容過於泛泛而談了。