標籤:控制系統 include c++編程
很久沒有更新過部落格了,其實不管多忙,有時候寫寫部落格未嘗不是一種提升。下面是我最近看的一本書的部分內容。
1.不要忽視警告,盡量沒有警告。
2.使用自動構建系統
3.使用版本控制系統
4.在代碼審查上投入
5.一個實體應該只有一個緊湊的職責
6.正確,簡單和清晰的代碼。
7.編程中應知道何時和如何考慮延展性
8.不要進行不成熟的最佳化。
9.不要進行不成熟的劣化。
10.盡量減少全域和共用資料。
11.隱藏資訊。
12.懂得何時和如何進行並發性編程。
13.確保資源為對象所擁有,使用顯式的RALL和智能指標。
14.寧要編譯時間和串連時錯誤,也不要運行錯誤。
15.積極使用const.
16.避免使用宏。
17.避免使用魔數。
18.儘可能局部地聲明變數。
19.總是初始設定變數。
20.避免函數過長,避免嵌套過程。
21.避免跨編譯單元的初始化依賴。
22.盡量減少定義性依賴,避免循環相依性。
23.標頭檔應該自給自足。
24.總是編寫內部#include保護符,絕不要編寫外部#include保護符。
25.正確地選擇通過值,指標或者引用傳遞參數。
26.保持重載操作符的自然語義。
27.優先使用算術操作符和賦值操作符的標準形式。
28.優先使用++和--的標準形式,有限調用首碼形式。
29.考慮重載以避免隱含類型轉換。
30.便面重載&&,||或,(逗號)。
31.不要編寫依賴於函數參數求值順序的代碼。
32.弄清所要編寫的是哪種類。
33.用小類代替巨類。
34.用組合代替繼承。
35.避免從並非要設計成基類的類中繼承。
36.優先提供抽象介面。
37.公用繼承即可替換性。繼承,不是為了重用。而是為了被重用。
38.實施安全的改寫。
39.考慮將虛擬函式宣告為非公用的,將公用函式宣告為非虛擬。
40.要避免提供隱式轉換。
41.將資料成員設為私人的,無行為的聚集(C語言形式的struct).
42.不要公開內部資料。
43.明確地使用pimpl。(使私人成員真正不可見)。
44.優先編寫非成員非友元函數。
45.總是一起提供NEW和Delete。
46.如果提供類專門的NEW,應該提供所有標準形式(普通,就地和不拋出)。
47.以同樣的順序定義和初始化成員變數。
48.在建構函式中初始化代替賦值。
49.避免在建構函式和解構函式中調用虛擬函數。
50.將基類解構函式設為公用且虛擬,或者保護且非虛擬。