無暇程式碼 :

整潔的軟體設計與架構篇
#1
2018.10.21

一些你該用但不見得能用的方法
&
一些你該懂但不見得能懂的內容

看似有理的名言佳句

  • 如果你認為好架構的代價是昂貴的,那不妨試試糟糕的架構
                     - Brian Foote and Joseph Yoder
    
    
  • 一個糟糕的架構預言了即將到來的重構
                                                                 - Alex Chen and Alice Chen

vii

設計與架構

3

最小化建造與維護系統所需的資源

龜兔賽跑的省思

8

  • 踏實和穩定是關鍵?
  • 比賽的目標?
  • 越快卻越慢?

自信與失敗的勇氣

9

  • 短期衝刺或長期維護
  • 自我放棄或救贖

需求與架構

12

  • 需求的價值
    
  • 軟體的彈性
  • 價值導向

為架構而戰

14

1.迫切且重要

2.不迫切但重要

3.迫切但不重要

4.不迫切且不重要

程式設計範式

20

  • 結構化程式設計
  • 物件導向程式設計
  • 函數式程式設計

結構化程式設計

23

循序、選擇、迭代

功能分解

26

大型有目的的系統 > 微小可證明功能的模組與元件

科學與測試

27

  • 程式不是數學是科學
  • ​測試的目的是證明錯誤存在
  • 通過測試證明程式足夠正確

物件導向程式設計

29

封裝、繼承、多型

多型與多載的威力

36

  • 不同實體操作同樣的功能
  • 同樣功能對不同實體

依賴反轉

37

  • 高階模組不可依賴低階模組
  • 細節應該依賴抽象

函數式程式設計

41

輸入限制 > 不可變的過程與可變的組合 > 輸出結果

程式設計

47

學習那些是不該做的

[ Alex宅讀書 ] 無暇程式碼 : 整潔的軟體設計與架構篇 #1

By Alex Chen

[ Alex宅讀書 ] 無暇程式碼 : 整潔的軟體設計與架構篇 #1

  • 690