Posted on 2009-05-08 15:40
一秋草木 閱讀(323)
評論(0) 編輯 收藏 引用 所屬分類:
C++ 、
讀書筆記
主題觀點:
1. Extreme readability
2. Extreme separate
3. Extreme abstraction
詳細內容:
Chp3
1、不要使用基本數據類型。
每種數據都有特定意義。具有使用規則、范圍等限制。使用基本數據類型會淹沒其信息特征。
2、盡量重用已有的類或代碼。
是否有替代的、類似的程序可用。是否有完全重新實現的必要性?
3、被調用者檢測輸入參數的合法性
相對于調用方,被調用者更熟悉該函數的使用環境,參數限制。
通常情況下應該由被調用者檢測輸入數據。驗證規則。
4、不使用magic number
5、工具要善用
盡量使用熟悉的工具進行工作,提高效率
同時新的工具增加了新的選擇。
所以需要根據實際情況作出選擇。
6、記錄決策分支
當一個問題存在多種解決辦法時,需要記錄問什么采用當前的解決方式。以備將來需求發生變化的時候進行快速決策。
7、對失敗的地方要分析失敗原因、如何避免不不犯相似的錯誤。
8、質量比單純地追求速度更重要
因為慢速的系統至少可以作為參考平臺。并且可以針對瓶頸優化提高性能。
錯誤的系統修改為正確的系統工作量更大,更困難。
9、錯誤匯報
錯誤情報應該對用戶有意義。包含兩部分信息:
①失敗的意義
②用戶可能會怎樣響應這樣的失敗
例如:永久失敗、暫時失敗、瞬間失敗
用戶需要采取的處理是不一樣的。
10、錯誤記錄
提供給用戶的錯誤情報是用于用戶決策的。
對于內部的實現細節的錯誤,應該記錄。以備追蹤問題。
11、不要自我重復
信息應該有某個可靠的來源處。如果信息需要以不同的方式來運用,則應該有一個轉換的過程,將之從單一源轉換為其它形式。可以保證修改的地方只有一處。
12、預構的態度
讓重復情況無法發生。
拷貝的是什么,是否應該移到單獨的函數中。
如果在函數內實現另外的一個特定的算法,那么應該將該算法移到專用函數中。
Chp2
1、原型比圖形、文字更容易溝通
2、將數據凝結成塊
可以減少必須記住的概念的數量。
把一組屬性結合到單一命名的概念中。
3、概念細分
結合兩個概念比分離一個概念來要簡單許多。
如message分為:error、notify、warning。
4、系統中每個概念都應該有專有的名稱