架構設計策略
- 找到夠用的設計
- 快速驗證解決方案
- 設法降低風險
- 努力簡化問題
- 快速迭代學習
- 同時考慮問題的解法和證法
- 總結
要想開發成功的軟體,開發者必須根據設計策略去做最優的解決方案,盡管有時候,比較簡單的問題,無須考慮太多,“梭哈”就完了,既快速又有效,然而,隨著業務的變化和系統復雜性的增加,設計上的問題始侄訓出現的,就像不規范的代碼會帶來很多隱患和技術債務,這些都是要還的,
凡事預則立,沒有架構設計策略的開發,很容易陷入錯誤混亂中,開發作業難以進行下去,因此,要學會運用思維模式(見《 架構設計思維模式》)和思維沉淀回圈(見《 架構設計思維模式實踐流程》),去制定最優的設計策略,
找到夠用的設計
最優的設計策略不是追求讓架構設計達到完美的狀態,應該清楚這是不可能,因為在現實開發中會有時間、資金成本、技術、知識、業務變化等限制導致架構設計不可能做到完美,
因此,我們的目標是找到一個夠用的設計,這個架構設計能適應當前企業環境(滿足利益相關方的需求等)和靈活應對業務變化,
尋找夠用的架構設計,可以參考如下策略:
- 快速驗證解決方案:解決方案驗證的速度越快,就越快找到合適的架構設計,專案就能越快受益,
- 設法降低風險:架構設計失敗是很嚴重的問題,必須時刻考慮可能出現的風險,并根據風險來進行設計,
- 努力簡化問題:運用分治、知識和抽象等方法,去理解和簡化復雜性不斷增長的問題,
- 快速迭代學習:運用思維沉淀回圈快速學習,快速積累知識,就能快速實作目標,
- 同時考慮問題的解法和證法:能解答問題的設計方案可能有很多,但能證明適用有效的設計方案,可能寥寥無幾,因此,需要同時考慮問題的解法和證法,以便高效地找到夠用的設計,
以上策略可能理解起來有點難度,下面就個人理解再次一一說明下,
快速驗證解決方案
要想能快速驗證解決方案,必須要建立一套快速驗證解決方案的機制,雖然架構師不是什么技術先知,但可以運用以下機制來快速驗證解決方案:可以先“紙上談兵”(頭腦風暴、參考過去經驗、決策矩陣等)來快速確定待驗證的解決方案,再以“勝兵先勝后求戰”的思想來優先驗證最可能有效的解決方案,最后再運用各種實驗的方法去驗證解決方案,
設法降低風險
這里要參考下工程學歷史學家Henry Petroski的話:
失敗的概念是設計程序的核心,正所謂“失敗乃成功之母”,通過消除失敗,可達致成功之設計,
做架構設計是一定要設法消除失敗的風險,但如今“巨人的肩膀”(各種消除風險的設計技術)實在太多了,很容易陷入了選擇困難的泥沼里,
因此,這里的“設法降低風險”應該是根據風險驅動的,即思考風險大小和解決的優先級、選擇合適的技術去行動、評估降低風險的程度再決定下一步設計,這里其實就是運用思維沉淀回圈的思考、行動、檢查步驟,
努力簡化問題
簡化問題不單單是為了應對日益增長的復雜性和規模,還有開發成本和維護成本等問題,如果把問題想得過于復雜也是不行的,那就可能過度設計了,為什么會這樣?往往是因為我們對問題理解的不夠深入,這時候應該運用思維沉淀回圈去理解問題,積累知識,再運用回圈去把問題抽象或者分而治之,
快速迭代學習
快速迭代學習,這也是敏捷開發的原則,如果一次迭代學習的時間過長,首先很可能滿足不了業務的時效性,其次時間長無法靈活應對變化,最后可能會導致維護的代價很高,因為一般周期長的迭代,實作的功能多,依賴多,復雜度高,一旦出現問題,糾正問題的成本和代價就很高了,因此,架構設計必須快速迭代學習,保證靈活性和不斷進化的特性,
同時考慮問題的解法和證法
問題的解法是很多的,越成熟的技術,越多成熟的解決方案,但并不是都合適的,因為每個專案和技術團隊是有差異的,并不能“一招鮮,吃遍天”,還需要根據自身的擁有的條件去證明某個解決方案確實是最優的,這是非常契合思維沉淀回圈的,因為思考了問題行動后肯定是需要進行檢查的,
總結
雖然理想的架構設計是不可能的,但是也不能沒有實際適用追求的,尋找夠用的設計其實是強調架構設計的度,要運用高效設計策略去尋找恰如其分的架構設計,因為過度或者過簡的架構設計是不行的,過度必然浪費資源,過簡必然無法規避風險,
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/271959.html
標籤:其他
上一篇:代理服務器
下一篇:互聯網人的Q2,被業務目標支配
