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