[英]PHP specific - clean code, naming conventions and documentation
PHP的干凈代碼,命名約定和文檔的最佳實踐是什么?
我看到用戶/人說這是一種不好的做法,例如:
// Create an array to hold x values
$arr_x = array();
這是不必要的注釋,僅語法會解釋功能。 那應該更多地是描述腳本/功能功能的標題注釋,而不是程序的變量/流程。 例
/**
* Create an array
*/
function create_array() {
return array();
}
$arr_x = create_array();
// This is just to show the comments and the code is not tested or used except for this example
這使我無法正確使用語法,編碼和文檔(標題命名的原因)。
變量,函數和腳本命名約定可以接受什么,或者這是個人喜好?
$varX
function varX()
varX.php
要么
$var_x
function var_x()
var_x.php
我正在嘗試確定是否應該遵循一個標准。 謝謝
沒有標准,只有開發人員的意見。
我更喜歡用下划線定界的變量:
$my_var
但是對於功能我更喜歡駝峰式:
function myFunction() {}
至於注釋,是的,有時根本不需要// create array
類的注釋,但是不要用一個內襯將它們拖延,它們不會在腳本執行時減慢速度。 我喜歡用一行簡潔地描述復雜腳本的每一步。
只要您和您的其他開發人員(項目中的其他人,第三部分公司等)可讀代碼,那么您就可以了。
最重要的是要保持一致。 除了描述性變量,函數和方法名之類的基礎知識之外,真正重要的是一致性。
如果您不想太認真考慮,可以隨意使用一種流行的編碼樣式指南,例如PEAR項目中的一種,或者JacobM剛剛發布的Zend Framework標准。
我使用codeigniter,這是他們的風格指南。
http://codeigniter.com/user_guide/general/styleguide.html
找到php_codesniffer支持的您喜歡的標准或與現有代碼庫最匹配的標准 -並安裝該工具-至少要有一個可用的工具來檢查您的代碼是否有差異。
重要的一件事是一致性。 無論您為開發團隊選擇什么(上面提到的任何標准),都要確保開發組織中的每個人都遵守它。 否則,代碼將很難閱讀,並且很難進行代碼審查。
編碼標准已在php中更改。 如果您查看舊的框架,它們都使用Camel大小寫,在我看來,這可能會導致代碼錯誤。 對於像Java這樣的語言,但對php來說卻沒有道理。
較新的編碼標准和框架工作避免使用cammel case,並且優先使用lower_case下划線下划線分隔的變量名稱。 例如:fat_yak,而不是fatYak。
php的問題在於它將接受一個尚未聲明的新變量,並且由於Case很重要,因此可能有兩個名稱相同但大小寫不同的變量。 因此,重要的是始終將小寫字母與變量一起使用,以避免簡單的錯誤,否則可能不會被發現。 應該將相同的原則擴展到方法名稱,因為在編寫擴展類和覆蓋方法名稱時會遇到相同的問題。 (有可能放錯大寫字母並以第二個功能結尾,而不是按預期替換原始功能。)
我認為,有一些非常好的編碼標准會被camelCase方面所破壞。
此原則也應擴展到文件名。 由於unix服務器與Windows服務器在大小寫上有所不同,因此始終使用小寫字母可以避免很多問題。 並非如此,以大寫字母開頭的較不命名的階級可能是卑鄙的邪惡。
在類名中使用CamelCase很好。 如果您在這里輸入錯誤,它將立即被收取。 實際上,為了您自己的理智,在上課開始時必須使用大寫字母。 (我會以這樣的名字命名為Fat_yak,而不是FatYak,但我在那方面是少數,所以雖然可以使文件命名更容易..例如:Fat_yak.php而不是FatYak.php,但還是可以閉嘴。
使用4個空格代替制表符是一個非常有用的想法,尤其是在使用許多不同的編輯器的情況下。 (代碼在所有編輯器上看起來都一樣)
其他所有事情都是50-50的命題..每個標准似乎都選擇了兩個選項之一。.這是編碼標准令人失望的方面,因為還沒有一個明確的領導者出現。
eg:
"true" or "TRUE"
eg:
function blah(){
}
or
function blah()
{
}
我將其稱為反模式。 當數據類型發生變化時,您將怎么辦? 您會更改整個項目,還是可能更改使用代碼的許多其他項目?
我寧願使用簡單的方法:
$x
function x()
x.php
JacobM剛剛發布了一個很好的PHP標准文檔。 但是,如果我要編輯或添加現有代碼,則嘗試遵循前一位作者提出的樣式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.