一、使用靜態分析工具測量質量
我們用靜態分析測量代碼而不運行它。實際上,我們將這些工具用於評估代碼、讀取文件、衡量它所寫的要素。使用這些工具,可以幫助我們對代碼庫有一個完整的層次化的認識,甚至在代碼庫變得更大、更復雜的時候也能掌握。
靜態分析工具是項目過程中的一個關鍵組成部分,但是,只有定期使用它們,並以理想的方式進行每一次提交,靜態分析工具才真正顯示出價值。這些工具涵蓋了代碼的所有方面,從計數類和計算行數,到識別哪裡有提示使用復制和粘貼的類似代碼段。然後我們來看看靜態分析工具在代碼質量中兩個特別關鍵的問題上如何幫助我們:編碼標准和文檔。
1、phploc
phploc:https://github.com/sebastianbergmann/phploc
PHP代碼行(phploc)可能並不是一個非常有趣的靜態分析工具,但它確實給了我們一些有趣的信息,特別是隨著時間的推移當我們反復運行它的時候。phploc提供項目拓撲結構以及尺寸的相關信息。
例如測試一個標准的WordPress版本,我們只需使用如下命令:
$ phploc wordpress
2、phpcpd
phpcpd:https://github.com/sebastianbergmann/phpcpd
PHP復制粘貼器(phpcpd)看起來是一個在代碼中尋找類似模式的工具,我們使用它是為了在代碼庫中識別代碼在何處被復制或粘貼。這是常規構建過程中的一個非常有用的工具,但是從輸出中獲得正確的編號會讓項目與項目有所不同。
同樣,如果我們測試WordPress,可以使用下面的命令:
$ phpcpd wordpress
3、phpmd
phpmd:http://phpmd.org/
PHP項目消息探測器(phpmd)是一個試圖量化所謂開發老手所說的“代碼發出的氣味”的工具。它使用一系列指標尋找似乎失衡的項目元素。該工具生成大量的輸出,其中大部分都是好的建議,下面是一個要求phpmd在WordPress中檢查命名混亂的命令:
$ phpmd wordpress/ text naming
二、編碼標准
編碼標准是一個在很多開發團隊中引起激烈爭論的話題,既然縮進和使用空格並未影響代碼的運行,那為什麼我們要創建格式化的規則並且嚴格遵守呢?事實上,當我們已經習慣於某個編碼風格,而且代碼以我們期望的方式排列時,它會變得更加容易閱讀。但是,在實際開發過程中,很容易忘記規則,所以需要工具區檢查所有的代碼。
1、使用PHP代碼探測器檢查編碼標准
PHP代碼探測器:http://pear.php.net/package/PHP_CodeSniffer
首先,你需要在服務器上安裝這個工具。無論它在開發機器還是開發服務器上,這完全取決於你所擁有的可用資源。
安裝後,就可以使用下面的命令測試代碼了:
phpcs --standard=PEAR robot.php
2、查看違反編碼標准的地方
PHP代碼探測器有幾個非常重要的報表樣式,你可以用它們看著所用代碼庫的“重點”、我們將這些以詳細報表的同樣方式輸出到屏幕上,它們也可以生成其他格式。
要生成一個匯總報表,只需這樣做:
phpcs --standard=PEAR --report=summary *
3、查看PHP代碼探測器標准
有幾個編碼標准是PHP代碼探測器默認運行的,你可以生成或設置任何自己的標准。若想看到有哪些可用的標准,你可以運行具有-i開關的phpcs。
$ phpcs -i
三、文檔和代碼
使用phpDocumentor將注釋轉換為文檔。
phpDocumentor:http://www.phpdoc.org/
例如:
phpdoc -t docs -o HTML:Smarty:PHP -d .
四、源代碼管理
常用源代碼管理工具:
Subversion:http://subversion.apache.org/
Git:http://git-scm.com/
五、自動部署
Phing:http://www.phing.info/
Phing 是一個基於Apache ANT 的項目構建系統。Phing使用基於XML的配置,默認保存在一個名為build.xml的文件中。
我們給這個項目命令,並定義一系列屬於這個項目的任務,還可以指定哪些任務被默認運行,都可以通過Phing進行配置。