星期日, 2月 01, 2015

軟體建構之道:讀書心得(第四、五章)

第四章:關鍵的構建決策
  1. 在撰寫程式碼之前,決定編寫的約定,例如變數名稱、註解、程式碼的格式等。
  2. 決定如何由軟體架構去處理諸如錯誤處理、安全事項、介面類別。
  3. 程式碼check-in之前,應規劃一套順序,例如step-by-step執行程式碼確認運作正常、進行單元測試及集成測試、review程式碼等。
  4. 思考時,跳脫程式語言。實際撰寫時,清楚知道語言的優缺點,並在語言不支援的部份,提出辦法補足。
第五章:軟體構建中的設計 (5.1-5.2)
  1. 設計時會有很多錯誤的步驟,這正是關鍵所在,必須在設計階段就加以改正,而不是程式碼撰寫階段。
  2. 設計什麼時候算是「足夠好了」?一般來說是「沒有時間再進行」的時候停止。
  3. 控制複雜度,人類一次能夠處理的問題與複雜度有限,讓問題折解成許多單純的小問題,並降底彼此間的關聯性。把必要性的複雜度控制到最小,並且避免附加性的複雜度無謂的快速增長。
  4. Low fan-out: 一個類別裡使用到其它類別的程度,叫做fan out。使用超過7個類別以上,稱為high fan-out。不論是調用sub function的量,或者是使用其它類別的量,應該保持low fan-out。
  5. 考慮精簡性,不留下無用的程式碼。「加了這段程式碼會有什麼害處呢?」
  6. 儘量避免使用特殊技術。
  7. 設計的步驟:軟體->子系統->類別->資料結構與子函數->子函數的內部設計。
  8. 子系統:限制子系統間的互相通訊,降低複雜度。