單一方法已捉襟見肘。一線架構師真正需要的,是覆蓋“需求進,架構出”全過程的實踐指導只有綜合了不同方法優點的“方法體系”才能堪此重任。方法體系必然是軟件業界未來發展的重大趨勢之一。
架構師是什麼
- 一個架構師得需要足夠的想象力,能把各種目標需求進行不同維度的擴展,爲目標客戶提供更爲全面的需求清單。說得詳細一些, 架構師就是確認和評估系統需求,給出開發規範,搭建系統實現的核心構架,並澄清技術細節、掃清主要難點的技術人員。主要着眼於系統的"技術實現”
- 架構師的主要任務:不是從事具體的軟件程序的編寫,而是從事更高層次的開發構架工作。他必須對開發技術非常瞭解,並且需要有良好的組織管理能力。可以這樣說,一個架構師工作的好壞決定了整個軟件開發項目的成敗。
- 在成爲Java架構師之前,應當先成爲高級Java工程師,越基礎的東西越重要, 很多人認爲自己會用它們寫代碼了,其實僅僅是知道如何調用api已,離會用還差得遠。如果你立志做架構,首先打好基礎從最底層開始。然後發展到各種技術和語言,什麼都要懂兩點,要全面且不膚淺。
- 架構師都是從碼農過來的:先精一門,爲全面且不膚淺打基礎。另外就是向有經驗的架構師學習, 和小夥伴們討論辯論爭論。其實最重要的能力就是不斷學習。在思考新的技術是否能更好地解決你們遇到的問題。
- 千萬不要成爲不寫代碼的架構師,有些公司專門產不寫技術的架構師。
- 不肯下苦功,如何高人一頭?
下面內容是來自:CSAI顧問團首席顧問著的《一線架構師的實踐指南》一書;關注後私信小編“架構師”可免費獲取一份PDF版完整版;
一線架構師:6個經典困惑
4個實際問題的困惑:
將系統劃分模塊,如何更合理?大系統架構設計,如何起步?總覺需求很糟糕,影響了架構設計!非功能需求重要,但如何設計?2個職業發展的困惑:
架構新手:缺乏指導,架構設計不知所措!架構老手:缺乏總結,仍“怕”下個項目!
4個核心主張
一、方法體系是大趨勢
單一方法已捉襟見肘。一線架構師真正需要的,是覆蓋“需求進,架構出”全過程的實踐指導——只有綜合了不同方法優點的“方法體系”才能堪此重任。本書認爲,方法體系必然是軟件業界未來發展的重大趨勢之一。
本書將要系統介紹的方法體系的名字一ADMEMS, 正是“Architectural DesignMethod has been Extended to Method System”的縮寫。是的,ADMEMS方法不是“單一方法”,而是由多個各具特點的方法組成的“方法體系”。ADMEMS方法通過它的名字亮明瞭其核心主張。
二、質疑驅動的架構設計
毫無疑問,架構設計是需求驅動的,而不是模型驅動的。
但需求驅動的說法,不太傳神一當你很清楚需求卻依然設計不出架構時就足以說明“需求驅動的架構設計”的總結還“缺點兒什麼”。
架構設計是一門藝術,你不可能把“一桶需求”倒進某臺神奇的機器然後等着架構設計自動被“加工生產”完畢,因此“需求驅動的架構設計”給架構師的啓發不夠。
缺點兒什麼呢?答案是,缺“人的因素”、“架構師的因素”!
架構設計實際上是個“質疑驅動的過程”需求,被架構師的大腦(而不是自動),有節奏地引入到架構設計的一波接一波的思維活動中。例如,作爲架構師,當你的架構設計進行到一半時,你可以明顯感覺到:這個架構設計中間成果,還需要“我”進一步通過“質疑”引入更多“質量屬性”以及“特殊功能場景”來驅動後續的架構設計工作的開展。
在保留“需求驅動的架構設計”所有正確內涵的同時,“質疑驅動的架構設計”告訴架構師:你的頭腦,纔是架構設計全過程的真正驅動力。質疑意識,是架構師最寶貴的意識之一。
至於有的專家提倡的“用例驅動的架構設計”這種觀點,則有嚴重缺陷,3句話足以揭示這一點:
- 需求=功能+質量+約束
- 用例是功能需求實際上的標準
- 用例涉及、但不涵蓋非功能需求
三、多階段方法
架構設計的多視圖方法很重要,但是,架構設計方法首先應當是多階段的,其次纔是多視圖的。
一句話,先做後做——這叫階段 (Phase), 齊頭並進——這叫視圖 (View)。
任何好的方法(不侷限於軟件領域),都必須以時間爲軸來組織,因爲這樣才最利於指導踐。
架構設計只需多視圖方法,看上去很美,其實並不足夠。實際上,大量一線架構師早已感覺到多視圖方法的“不足夠”。例如,想想投標:
- 一方面,投標時,要提供和講解《方案建議書》,其中涉及到架構的內容。
- 另一方面,團隊開發時,需要《架構設計文檔》,供多方涉衆使用。
- 但是,投標時講的“架構”和並行開發時作爲基礎的“架構”在同-一個抽象層次上嗎?絕不可能。前者叫概念架構,後者叫細化架構。如果投標失敗,細化架構設計根本就不需要做了。
- 結論, 概念架構設計和細化架構設計,是2個架構階段,不是2個架構視圖。
四、內置最佳實踐的方法
方法不應該是個空框框,應融入最佳實踐經驗。相信業界很多專家都正朝着這個方向邁進。
ADMEMS方法中融入了筆者的哪些實踐經驗呢?僅舉幾例:
1、邏輯架構設計的10條經驗
2、質疑驅動的邏輯架構設計整體思路
3、基於魯棒圖進行初步設計的10條經驗
4、ADMEMS矩陣方法
5、約束的4大類型
6、....
由於內容細節實在是太多了,感興趣的朋友點贊+關注+轉發後私信小編“架構師”免費獲取完整PDF版
第1章 緒論
第2章Pre- architecture的故事
第3章Pre- architecture總論
第4章需求結構化與分析約束影響
第5章確定關鍵質 與關鍵功能 第2部分Conceptual Architecture階段
第2部分Conceptual Architecture階段
第6章概念架構的故事
第7章Conceptual Architecture總論
第8章初步設計
第9章高層分割
第10章考慮非功能需求 第3部分Refined Architecture階段
第3部分Refined Architecture階段
第11章細化架構的故事
第12章Refined Architecture總論
第13章邏輯架構
第14章物理架構、運行架構、開發架構
第15章數據架構的難點:數據分佈
第16章考慮非功能需求
第17章應對非功能 目標的理性設計難題
架構師都是從碼農過來的,媳婦熬成婆。
加油吧,各位!記得點贊+關注哦