--- type: slide tags: ELK-ROOM title: sharing 02/20 --- # Sharing ## 02/20 --- ### Clean Architecture Uncle Bob ![](https://i.imgur.com/4g0KRDF.png =50%x) --- 寫了超過半世紀程式的大神 :「架構的規則都是一樣的!」 哪怕硬體運算能力變化多快, 哪怕那麼多新語言、框架、範式, 與 1946 年圖靈寫下第一個機器碼並無分別, 只差在—當時,並不知道規則是什麼 --- ### 軟體架構的目標 ”軟體架構的目標是最小化建置 和維護「需求系統」所需要的人力資源。“ 如果滿足客戶所需的精力, 隨著版本增長而增長的話,設計就是不好的 --- ![](https://i.imgur.com/OaYa5sk.png) --- ![](https://i.imgur.com/pTmclOM.png) --- ![](https://i.imgur.com/FOKANfg.png) --- ### 爛攤子 人事成本超高,實際上卻沒什麼產值 龜兔賽跑:越快的反而越慢 ![](https://i.imgur.com/laSsYsW.png =120%x) --- ### 熟悉的謊言 「我們可以晚點整理它,但我們只能先上市!」 ![](https://i.imgur.com/RM7YHpQ.png) --- ![](https://i.imgur.com/0zzEQoJ.png =75%x) --- 永遠被功能追著跑, 生產力繼續朝著 0 的方向趨近 --- 製造紊亂的開發速度 總是比保持整潔的開發速度還要慢 ![](https://i.imgur.com/B4koycv.png) --- 軟體系統為利益相關者提供兩種價值 - 行為 (behavior) - 結構 (structure) --- - 行為 (behavior) - 功能規格 (functional specification) - 需求文件 (requirements document) - 結構 (structure) - 軟體 (software), 它是可以輕易改變機器行為的一種方式 --- 改變難度應與改變範圍成正比, 而非改變形狀 (shape) 正是兩者差異促使開發成本增長 ![](https://i.imgur.com/Y3L4aYP.png =30%x) --- ![](https://i.imgur.com/3aarh6u.png) - 行為 (behavior) ----> 迫切 - 結構 (structure) ----> 重要 --- 開發團隊有責任主張 **架構重要性 > 功能迫切性** 這也是開發人員存在的重要原因 --- ### 小結 想要走的快,就要走的好, 認真對待軟體架構的品質, 不改變觀念的話, 就算砍掉重做,也是再一次輪迴 大家請為架構而戰