1. 組織類
1.1. 每一個介面、類、結構體和列舉均應當擁有其自身的獨立源檔案
1.2. Pascal命名方法命名命名空間
1.3. 測驗類定義在獨立的程式集
-
1.3.1. 不同程式集的測驗放在不同程式集
-
1.3.2. 程式集名稱的最后附加Tests命名空間
1.4. 公司名稱、產品名稱和縮寫詞匯無須使用復數形式
2. 單一職責原則
2.1. (Single Respon-sibility Principle,SRP)
2.2. 一個類應當只具備一種職責
2.3. 類的職責就是類所具備的功能
3. 從注釋生成檔案
3.1. 源代碼檔案的頂部都應當包含著作權宣告
3.2. 命名空間、介面、類、列舉、結構體、方法和屬性都應當包含注釋
4. 內聚
4.1. 高內聚
- 4.1.1. 代碼應恰當分組
4.2. 低內聚
-
4.2.1. 不屬于同一型別的代碼劃歸在一組
-
4.2.2. 職責多于一種的類稱為低內聚類
5. 耦合
5.1. 緊耦合
- 5.1.1. 一個類對另一個類依賴性越強
5.2. 低耦合
-
5.2.1. 相互獨立的類越多
-
5.2.2. 依賴注入技術有助于撰寫低耦合且易于測驗的整潔代碼
6. 為變化而設計
6.1. 設計變化的內容和方式
6.2. 面向介面編程
-
6.2.1. Interface-Oriented Programming,IOP
-
6.2.2. 有助于撰寫多型的代碼
-
6.2.3. 控制反轉可以在必要時替換實作了相同介面的軟體的實作
6.3. 依賴注入(Dependency Injection,DI)
6.4. 控制反轉(Inversion of Control,IoC)
6.5. 解決軟體變更的問題
7. 迪米特法則
7.1. Law of Demeter
7.2. 最少知識原則(The Least Knowledge Principle)
7.3. 一個類對于其他類知道的越少越好
7.4. 意在洗掉鏈條式呼叫(用“.”進行的呼叫鏈接)
7.5. 可以解除代碼的耦合
7.6. 實作迪米特法則有時是很難的
8. 不可變物件
8.1. 值型別
8.2. 一旦獲得則其值就不再改變
8.3. 容易預測又不會改變
8.4. “最小驚訝原則”(principle of least astonishment,POLA)
9. 物件應當隱藏資料并暴露方法
10. 資料結構體應當暴露資料而無須包含方法
10.1. 結構體和類不同,它們使用值相等而非參考相等來進行比較
10.2. 最好隱藏資料,僅僅通過屬性或方法來訪問資料
11. 函式式編程
11.1. 一種軟體編程方法
11.2. 將計算看作數學計算評估
11.3. LINQ
11.4. readonly struct和不可變資料結構
11.5. 比其他編程型別的方法要短小得多
11.6. 對于面向程序的程式員和面向物件的程式員來說需要比較艱難的轉變才能適應
12. 保持方法短小
12.1. 最好將方法長度控制在10行之內
12.2. 最佳長度是在4行之內
13. 代碼縮進
13.1. IDE實作
14. 避免重復代碼
14.1. Don't Repeat Yourself,DRY
14.2. WET即每次都需要撰寫的代碼(Write Every Time)
15. 盡可能減少引數數量
15.1. 方法引數數目應當小于三個
15.2. 理想情況下則不需要任何引數
15.3. 使用引數物件的模式進行設計
16. 更改物件狀態是程式缺陷的源泉,尤其是在多執行緒程式中
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/547582.html
標籤:C#
上一篇:WPF監聽快捷鍵的幾種方式