據統計最近PHP7的使用率達到60%以上,PHP7的底層規范做了一些標準處理,但是語言優化了,而PHP程序員呢?大多數PHP程序員確實嚴重缺乏編碼規范。這和PHP語言本身的入門門檻不高也存在一定的關系。但是既然我們寫了PHP代碼,我們就要做一名合格的PHP程序員,從編碼規范開始吧!
為了提高工作效率,保證開發的有效性和合理性,并最大程度提高程序代碼的可讀性和重復利用性,提高溝通效率,任何語言都需要一份代碼編寫規范。PHP亦是如此。
一、代碼規范的重要性
1、促進團隊合作。
項目是由一個團隊來完成,如果沒有統一的代碼規范,那么每個人的代碼必定風格迥異。多個人同時開發同一模塊,等到要整合代碼的時候也很頭疼,可讀性差。
2、減少Bug處理。
減少低級錯誤發生。再復雜的邏輯看起來也是很清晰。規則不統一,容易出錯。步調一致,減少細節思考。
3、降低維護成本。
方便后面的人進行代碼閱讀和維護,減少程序耦合性,方便在之前的模塊上擴展一些功能??删S護性高。
4、有助代碼審查。
代碼審查有據可依。減少代碼審查的工作量。統一度量標準。
5、有助自身成長。
誰能保證之后不需要來維護自己的代碼。在緊張的項目進度要求下,提高自身工作效率,產生高質量代碼。防止后續別人讀自己的代碼,心里默默在罵你。一定要高效率,專業。
二、代碼規范的要求
1、良好的工程結構
目錄結構要清晰,例如很多框架采用了mvc設計思想。模型放一個目錄,視圖放一個目錄,控制器放一個目錄。大家可以下載相關的mvc設計思想的框架,例如:ThinkPHP、Laravel。
使用DRY原則,不要重復你的代碼。拆分可重用函數或類,使用常量定義。
2、使用有意義并一致命名
不要使用拼音命名,不要沒有明確含義的命名。
變量命名:變量的名詞性(形容詞+名詞),長名字可用下劃線連接。
函數名:小駝峰式(如:getUserInfo())。函數的動詞性(動詞+形容詞+名詞;謂語+賓語)
類的命名:大駝峰式(如:UserInfo)類的名詞性:如:OrderModel。不可出現下劃線。
3、適當留空和必要縮進
使用tab鍵縮進(不可使用4個空格來代替縮進)。
留空(使用空格、換行、空行)
4、避免深嵌套
嵌套不應該大于3層。函數不應該有多個出口。
5、添加應有的注釋
注釋塊/**/
文件頭:名詞,版權,作者。
類:類作用解釋。
函數:函數作用,入參數,返回內容。
注釋行 //:幫助記憶
代碼說明:一般用于對某個邏輯塊的說明。
結束提示:常用于if、switch、while邏輯體結束說明。
待開發提示
調試提示
6、變量聲明和初始化
避免聲明的局部變量覆蓋上一級聲明的變量
使用前必須將變量初始化
變量名盡量體現數據類型
7、永遠不要相信用戶
天真的用戶:只要有輸入框,就會出現各種輸入內容
不懷好意者:會想辦法通過輸入注入惡意內容
防范措施:前端對輸入進行校驗。后端對于輸入校驗必不可少,不能假設前端做了正確的校驗。存在你也不知道的入口。攻擊者會直接通過編造請求的方式進行提交。防止各種注入。
8、合理使用緩存機制
建議使用緩存機制緩存獲得更好的性能。例如:redis、memcached等。
避免代碼的Copy和Paste
沒有理解代碼的含義,就呆板的拷貝復制??截悂淼拇a未必就是對的。如果有重復代碼,意味著可以拆分出一個功能函數。
9、盡量多使用框架
框架的目的是為了提高開發效率。框架是前輩們知識和經驗積累而來,是被證明了的成熟解決方案。絕大數框架基于MVC(模型視圖控制器)架構理念而開發。選擇適合自己的框架。