編寫易讀的代碼

來源:互聯網
上載者:User
成功的Team Dev要求隊伍中的每一位成員遵守代碼重用規則,這些規定把代碼的重用性推到極至同時卻不會顯著降低開發人員的創造力和開發效率。如果編寫和使用代碼的開發人員遵守共同的程式命名規範代碼和代碼注釋要求,那麼代碼的重用性就會得以大大提升。這些標準的起點是系統結構級的。你的功能規格應該在類、屬性的名字、函數傳回值以及其他關鍵程式元素的定義中反映這些標準。本文將就基本的命名規則和注釋提出一些可行的建議,意圖協助讀者開發自己的代碼重用標準。


大小寫標準


在我們開始討論各類程式要素命名的正確方式之前,先讓我們定義區分元素的字元大小寫兩種最常用方式,它們是:

Pascal規範—第1個字元大寫,目標名中的每個單詞的第1個字母也大寫,比如InvoiceNumber或者PrintInvoice。其他的所有字元都小寫。
Camel規範—第1個字元不大寫,但目標名中的每個單詞的第1個字母大寫,比如,invoiceNumber。其他的所有字元都小寫。
可是,採用字元大小寫區分元素可能在對大小寫不敏感的程式設計語言中引發問題。比方說,由於C#語言區分大小寫,所以你可以調用私人變數employee,接著它所具有的公用屬性Employee則可以被調用者所用。這些操作是完全合法的。但是,對Visual Basic來說就會產生錯誤,因為VB是不區分字母大小寫,以上兩種元素在VB看來都是一回事。假如你在混合語言環境下工作,你只能指定某些規則要求開發人員合理利用多種語言閱讀其他人開發的代碼。


命名標準
假設我們採用了以上的大小寫標準,現在就讓我們瞭解一些通用程式元素的簡單命名建議。


某些類設計為類比真實世界的對象,就這些類來說,所選用的名字就應該反映真實世界的對象、具有單數名詞的格式,比方Employee、 Invoice或者Timecard等。對內部類而言可以採用Pascal規範令結果類具有單數形式的名字,比如ThreadPool或者CustomColor等。類應當是單數的,這樣它們的複數形式就可以代表同類的集合名,比如Employees數組等。

類的成員
採用C#以及其他大小寫敏感程式設計語言的開發人員應當採用camel規範命名類成員的名字。這樣做可以讓開發人員更易於區分內部變數的名字(name)和公用屬性的名字(Name)。許多VB開發人員更喜歡採用匈牙利命名法為類成員起名,也就是在名字前面加上首碼表示變數的類型,比如sName就指的是string類型的Name變數。我認為,在使用VS.NET這樣進階的開發環境下這樣做是不必要的,因為在這種情況下系統滑鼠停留在變數之上即可可自動顯示變數的類型。我個人喜歡在類成員名前加上首碼:小寫字母m。這樣內部變數就儲存了足夠的內部類資訊:內部變數mName就正好代表了公用屬性Name。

方法
方法應該用Pascal規範命名,同時用合理的方式說明他們的實施行為。比方說,給資料庫添加僱員的方法可以命名為AddEmployee,而列印發票的方法則不妨命名為PrintInvoice。假如方法返回的是布爾值,那麼方法名應該以動詞開頭以便用在if語句的時候其含義更明顯。比如說,假如你有一個方法的功能是確定某位僱員是否符合公司401k計劃的要求,那麼你可以在If語句中調用IsEligible401k方法:If IsEligible401k then…

方法參數、傳回值和變數
所有的方法參數、傳回值和變數都應該採用Pascal規範命名,同方法名一樣也應該能反映參數或者變數所代表的含義。這一點對參數方法而言特別重要,因為你在調用方法的時候智能感知(Intellisense)會返回參數名和參數類型。所有採用方法的開發人員都應該使用描述性的名字和類型,便於相互理解其含義。

控制項
控制項命名是開發領域一個經常引發爭議的問題。雖然大多數人贊同不應該使用控制項的預設名稱,比如TextBox1或者Label1等等,但是,他們還反對按照變數的方式命名控制項或者採用首碼表示控制項的類型。我比較喜歡採用標準的三字母首碼命名表單中控制項的名字。比如說,儲存姓氏和名字的文字框控制項就不妨分別命名為txtLastName和txtFirstName。處理表單資料的命令按鈕則可以命名為cmdSubmit或者cmdCancel。其實,只要你能保證控制項命名的一致性而且標準易於理解即可。

注釋
注釋代碼對所有開發人員來說都是必要的。為了教授正確的注釋技術,我就經常在自己的示範程式中添加註釋代碼。同時,為了簡化注釋過程,我建議開發人員首先編寫注釋說明他們想編寫的程式。我首先會寫注釋說明程式中的過程、類或者其他程式要素,但對其具體工作原理不做闡述。然後我會編寫一系列的注釋代碼描述過程的每一主要步驟或者類的元素。在編寫了定義類或者說明過程的代碼之後,我對各個外部變數、控制項、開啟的檔案乃至其他過程所訪問的元素文檔化,對輸入參數和傳回值做簡要說明。

如果你在使用C#開發程式,那麼VS.NET環境已具有內建的工具協助你把內部C# 注釋轉換為外部HTML文檔。你可以在自己的文檔中加上特殊的處理指示符而改變外部文檔的表示方式。有關這方面的更多資訊可以參考VS.NET內部協助檔案: ms-help://MS.VSCC/MS.MSDNVS/csref/html/vcoriXMLDocumentation.htm.


相關文章

Cloud Intelligence Leading the Digital Future

Alibaba Cloud ACtivate Online Conference, Nov. 20th & 21st, 2019 (UTC+08)

Register Now >

11.11 Big Sale for Cloud

Get Unbeatable Offers with up to 90% Off,Oct.24-Nov.13 (UTC+8)

Get It Now >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。