0
A
回答
2
這裏內在的東西,你可以找到一些Design Guidlines for Developing Class Libraries
1
當遇到多種環境時,設計約定和指導方針的語言和平臺將付出巨大的努力。根據我的經驗,最好堅持供應商或社區的標準。這樣做的原因:
- 較少的工作
- 新的團隊成員可以很容易地把它撿起來;它應該是熟悉已經
- 未來增加的語言/環境可能會很容易添加
所以查找從供應商和社區的標準,並添加未指定的東西(大部分時間就像命名不影響接口的局部變量)
0
我嘗試按照爲我添加到一個類中的任何新功能,遵循以下原則:
- 函數名稱應遵循Pascal命名約定。
- 功能名稱應該顯示它的功能 - 無需查看代碼。如果你試圖理解一段代碼,那麼函數名應該確切地說明它做了什麼,並且不應該有任何需要去查看該函數的代碼。
- 函數應該做一件事(單一責任原則)並且做正確的事情。
- 功能應儘可能小。
- 函數名稱應該是動詞。它不應該包含班級的名字。對於例如User.Authenticate比User.AuthenticateUser更好。
- 非靜態函數應該改變對象的狀態或返回一個對象的狀態,但不是兩者。如果這個函數兼有,它會變得混亂,並且經常無法正確命名。
- 函數輸入應該是一個更合適的更一般化的基本類型。
- 函數返回值應該是一個更適合的更專用派生類型。
- 函數應該通過使用Debug.Assert來記錄函數邏輯前後的任何假設(如果有的話)。
- 類中的公共函數應該依賴於順序。如果函數需要某個對象的某個狀態,那麼它應該向消費者拋出一個適當的異常。
- 公共函數應檢查提供的輸入是否有效。如果輸入無效,它應該拋出一個適當的異常。 .net中有異常類用於相同的目的:ArgumentNullException,ArgumentOutOfRangeException,ArgumentException等。查看是否已經有一個異常類在創建定製類之前服務於此目的。
- 公共函數應該有xml註釋文檔:目的,輸入參數,輸出,函數引發特殊考慮等有關函數的異常。
- 私人函數不應檢查輸入的有效性,因爲它們是從類中調用的。
- 不訪問對象狀態的私有函數應聲明爲靜態。
- 函數應該通過以'base'爲前綴來訪問任何基類成員。對於例如base.ToString()應該用於調用基類方法。
相關問題
- 1. ASP .Net MVC控件設計指南
- 2. Vista新功能指南
- 3. 功能區GUI指南
- 4. 函數/類設計指南
- 5. Android 4.0設計指南
- 6. Android代碼設計指南
- 7. 枚舉設計指南
- 8. Android設計指南? (字體)
- 9. Google Play設計指南?
- 10. Java Swing設計指南
- 11. 使用沒有指南針項目的指南針(sass)功能
- 12. 設計指南分佈式計算
- 13. 設計清潔界面的指南
- 14. Apple Store審查指南,功能
- 15. 功能標誌初學者指南 - Django
- 16. Amcharts - 結合「parseDates」,「connect」和指南功能
- 17. 簡稱幾項功能 - 指南?
- 18. 指南針/ Sass功能和mixin語法
- 19. 如何設計材料設計指南中的列表示例?
- 20. Android應用程序設計指南
- 21. iOS CoreData架構設計指南
- 22. IE10觸摸輸入設計指南?
- 23. Django Web應用程序設計指南
- 24. 材料設計列表指南Android 5.0
- 25. Dashcode - 屬性檢查器 - 設計指南?
- 26. 動態壁紙圖標設計指南
- 27. Django通用視圖,設計指南
- 28. 繁忙交通設計指南
- 29. 天青/ AWS ORM設計指南
- 30. 設備功能編程指南去了哪裏?
這是一個非常廣泛的問題。答案需要一整本書。這裏是這本書:http://msdn.microsoft.com/en-us/library/ms229042.aspx。 – 2011-03-24 05:34:58
@John:我同意答案需要整本書,並且已經有深入討論這個話題的書。 Bob叔叔的「Clean Code」在這個問題上得到了廣泛的報道。然而,它總是很好,並有助於總結和總結這些事情,並對其進行非常簡短的描述。 – 2011-03-24 05:44:39