「軟體架構的目標是最小化 『建置和維護系統所需的人力』」
「架構的規則都是一樣的! 年輕設計師可能會認為這是無稽之談,可能會堅定認為現在的一切都是新的、是不同的。很不幸,他們錯了。即使出現那麼多新語言、框架、範式...,現在的規則與 1946 年 Alan Turing 寫下第一個機器碼時,並無分別」
「本書就是要來講述這些規則的 - 那些永恆、不變的規則」
取自: Clean Architecture (p.10 & pp.xi-xiii)
從上圖可發現
「盡管所有的英雄加了班也奉獻了精力,但他們根本不會得到任何東西了。現在這些努力是用來管理這個爛攤子的。他們的工作已經改變了,是用來將這個爛攤子從某個地方轉移到另一個地方,這樣他們就可以再增加一個小小的功能特性 (Feature)」
取自: Clean Architecture (p.7)
迷思: 編寫紊亂的 Code 可以在短期走得更快,只有長期下來才會變慢
每一個軟體系統都提供了兩種不同的價值
軟體系統能夠工作比較重要,還是軟體系統更容易變更比較重要?
「業務經理通常會說軟體系統能夠工作比較重要。反過來,開發人員也會經常跟著這種態度去做。但這是錯誤的態度」
取自: Clean Architecture (p.13)
論證一:
讀者可能不覺得這說法有說服力,但是,確實有系統實務上不可能再改變,因為改的成本超過了帶來的利益
論證二: Eisenhower 矩陣
取自: https://hive.com/blog/eisenhower-matrix/
我們可安排做事的優先順序:
我們可發現,程式碼的結構位於此 List 的前 2 位,而程式碼的行為只佔據了 1 & 3 的位置
困境: 業務經理沒有能力評估架構的重要性
「只要記住: 如果架構最後才出現,那麼開發系統將變得更昂貴。系統的最終修改將變得幾乎不可能」
取自: Clean Architecture (p.15)