PHP如何編寫易讀的代碼

來源:文萃谷 1.53W

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

PHP如何編寫易讀的代碼

  大小寫標準

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

Pascal規範—第1個字符大寫,目標名中的每個單詞的第1個字母也大寫,比如InvoiceNumber或者PrintInvoice。其他的所有字符都小寫。

Camel規範—第1個字符不大寫,但目標名中的每個單詞的第1個字母大寫,比如,invoiceNumber。其他的所有字符都小寫。

可是,採用字符大小寫區分元素可能在對大小寫不敏感的編程語言中引發問題。比方説,由於C#語言區分大小寫,所以你可以調用私有變量employee,接着它所具有的公共屬性Employee則可以被調用者所用。這些操作是完全合法的。但是,對VisualBasic來説就會產生錯誤,因為VB是不區分字母大小寫的,以上兩種元素在VB看來都是一回事。假如你在混合語言環境下工作,你只能指定某些規則要求開發人員合理利用多種語言閲讀其他人開發的代碼。

命名標準

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

  類

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

  類的成員

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

  方法

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

  方法參數、返回值和變量

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

  控件

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

  註釋

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

熱門標籤