行為與架構 | Clean Architecture 無瑕的程式碼:整潔的軟體設計與架構篇 閱讀筆記

Clean Architecture 無瑕的程式碼:整潔的軟體設計與架構篇

本文為「Clean Architecture 無瑕的程式碼:整潔的軟體設計與架構篇」第 2 章「兩種價值觀的故事」的閱讀筆記。


每個軟體系統都可提供給利益相關者兩種價值-行為(behavior)和架構(structure)。

行為

行為又稱「功能」。軟體在「功能」方面的價值是指軟體的功能能為使用者創造或節省資金;而工程師透過協助制定規格、開發與維護系統以滿足需求來為軟體提升功能上的價值。

架構

軟體在「架構」方面的價值是指當需求變更時是否能輕易改變。若架構很有彈性的話,需求變更時便能很輕易的做修改。因此,一個擁有好的架構的軟體,要變更功能是容易的;但若軟體的架構毫無彈性可言,難以修改,就算現在功能運作正常、創造良好收益,當未來有需求變更時,也會難以調整而完全失去價值。


軟體架構師通常會較重視架構而非功能,架構師建立的架構必須要能讓功能易於開發、修改並能輕鬆擴張。

Eisenhower 矩陣

重要性與緊急性的矩陣。

Eisenhower 矩陣

將這四個面向做排列,優先順序如下…

  1. 重要且緊急
  2. 重要但不緊急
  3. 緊急但不重要
  4. 不緊急又不重要

將功能與架構放到矩陣上衡量,會得到…

因此,若將位於第三名「緊急但不重要」的功能常常誤判為第一名「重要且緊急」,就會讓系統終將因缺乏彈性的架構,導致難以調整而完全失去價值。


好的軟體工程師必須為架構而戰,而非屈服於業務單位而以功能為優先目標。


Clean Architecture 無瑕的程式碼 Clean Code 閱讀筆記