構建知識體系之二--PHP註釋風格

碰到神一般的境界:寫代碼的時候,只有上帝和他知道代碼是什麼意思,現在只有上帝知道了。

team work中經常的交流不是在討論問題,而是重構別人的代碼,之前有個任務真的是把我噁心到了,有大量複雜的邏輯代碼,木有註釋,看着大量的switch case,if else,再看看代碼量,上了800行的函數就有六個,我死的心都有了。

從我重構完代碼,我就發誓,造福後來者,寫代碼規範,有標準的註釋,函數不會在30秒內看不懂,有完整的測試用例,或者是demo。


先來給個簡單的註釋:


/**
 * @author          water(作者)
 * @example         /path/to/example(可以是實例demo或者是測試文檔也行,有了這個其他程序員使用的時候,運行一下就知道參數和返回值了)
 * @param           參數,可能有好幾個
 * @return          返回值
 * @throws          方法拋出的異常
 * @since           記錄什麼時候對文檔的哪些部分進行了更改(更改日誌)
 */

要是想更少點,成員函數中的註釋就不需要這麼多了

/**
 * @author          water(作者)
 * @example         /path/to/example(可以是實例demo或者是測試文檔也行,有了這個其他程序員使用的時候,運行一下就知道參數和返回值了)
 * @param           參數,可能有好幾個
 * @return          返回值
 */

額,好像還少了一個brief:函數簡介。總之就一句話,函數寫成一個黑盒子,看看註釋就能懂能用

例子請看這裏:PHP字符編碼

小技巧:

不能只是爲了這個註釋浪費很多時間?要效率?看這裏:

 如果嫌每次寫這個註釋麻煩(我當時就是),可以把這個copy一份模板放到常用代碼中,使用的時候直接copy。

另外,更簡單的辦法就是更改zend studio或者eclipse中的模板,讓強大的IDE自動生成模板。

但是,裏面的比如參數,返回值,測試demo等,就必須由自己來改好了,木有這麼自動的敲打


如果不會IDE自動生成模板的方法。哼!要度娘作甚!


下面是PHP的註釋標準:不爲別的,這個是PHPDOC的標準,寫好了註釋,也就寫好了API文檔:

PHPDocumentor是一個用PHP寫的工具,對於有規範註釋的php程序,它能夠快速生成具有相互參照,索引等功能的API文檔

標記 用途 描述
@abstract   抽象類的變量和方法
@access public, private or protected 文檔的訪問、使用權限. @access private 表明這個文檔是被保護的。
@author 張三 <[email protected]> 文檔作者
@copyright 名稱 時間 文檔版權信息
@deprecated version 文檔中被廢除的方法
@deprec   同 @deprecated
@example /path/to/example 文檔的外部保存的示例文件的位置。
@exception   文檔中方法拋出的異常,也可參照 @throws.
@global 類型:$globalvarname 文檔中的全局變量及有關的方法和函數
@ignore   忽略文檔中指定的關鍵字
@internal   開發團隊內部信息
@link URL 類似於license 但還可以通過link找到文檔中的更多個詳細的信息
@name 變量別名 爲某個變量指定別名
@magic   phpdoc.de compatibility
@package 封裝包的名稱 一組相關類、函數封裝的包名稱
@param 如 [$username] 用戶名 變量含義註釋
@return 如 返回bool 函數返回結果描述,一般不用在void(空返回結果的)的函數中
@see 如 Class Login() 文件關聯的任何元素(全局變量,包括,頁面,類,函數,定義,方法,變量)。
@since version 記錄什麼時候對文檔的哪些部分進行了更改
@static   記錄靜態類、方法
@staticvar   在類、函數中使用的靜態變量
@subpackage   子版本
@throws   某一方法拋出的異常
@todo   表示文件未完成或者要完善的地方
@var type 文檔中的變量及其類型
@version   文檔、類、函數的版本信息

發佈了33 篇原創文章 · 獲贊 1 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章