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