不得不說php程式設計師總是一不小心就被列為程式設計師鄙視鏈的底端(還好現在有前端工程師了,哈哈哈哈),那麼從php語法結構,php命名規範與預定義的關鍵字來說,確實有些定義不算很協調,但是總在底端這件事php語言也不該背鍋。
據統計最近php7的使用率達到60%以上,php7的底層規範做了一些標準處理,但是語言優化了,而php程式設計師呢?大多數php程式設計師確實嚴重缺乏編碼規範。這和php語言本身的入門門檻不高也存在一定的關係。但是既然我們寫了php**,我們就要做一名合格的php程式設計師,從編碼規範開始吧!
為了提高工作效率,保證開發的有效性和合理性,並最大程度提高程式**的可讀性和重複利用性,提高溝通效率,任何語言都需要乙份**編寫規範。php亦是如此。
一、**規範的重要性
①促進團隊合作。
專案是由乙個團隊來完成,如果沒有統一的**規範,那麼每個人的**必定風格迥異。多個人同時開發同一模組,等到要整合**的時候也很頭疼,可讀性差。
②減少bug處理。
減少低階錯誤發生。再複雜的邏輯看起來也是很清晰。規則不統一,容易出錯。步調一致,減少細節思考。
③降低維護成本。
方便後面的人進行**閱讀和維護,減少程式耦合性,方便在之前的模組上擴充套件一些功能。可維護性高。
④有助**審查。
**審查有據可依。減少**審查的工作量。統一度量標準。
⑤有助自身成長。
誰能保證之後不需要來維護自己的**。在緊張的專案進度要求下,提高自身工作效率,產生高質量**。防止後續別人讀自己的**,心裡默默在罵你。一定要高效率,專業。
二、**規範的要求
良好的工程結構
使用有意義並一致命名
不要使用拼音命名,不要沒有明確含義的命名。
變數命名:變數的名詞性(形容詞+名詞),長名字可用下劃線連線。
函式名:小駝峰式(如:getuserinfo())。函式的動詞性(動詞+形容詞+名詞;謂語+賓語)
類的命名:大駝峰式(如:userinfo)類的名詞性:如:ordermodel。不可出現下劃線。
適當留空和必要縮排
使用tab鍵縮排(不可使用4個空格來代替縮排)。
留空(使用空格、換行、空行)
避免深巢狀
巢狀不應該大於3層。函式不應該有多個出口。
新增應有的注釋
注釋塊/**/
類:類作用解釋。
函式:函式作用,入引數,返回內容。
注釋行 //:幫助記憶
**說明:一般用於對某個邏輯塊的說明。
待開發提示
除錯提示
變數宣告和初始化
避免宣告的區域性變數覆蓋上一級宣告的變數
使用前必須將變數初始化
變數名盡量體現資料型別
永遠不要相信使用者
天真的使用者:只要有輸入框,就會出現各種輸入內容
不懷好意者:會想辦法通過輸入注入惡意內容
防範措施:前端對輸入進行校驗。後端對於輸入校驗必不可少,不能假設前端做了正確的校驗。存在你也不知道的入口。攻擊者會直接通過編造請求的方式進行提交。防止各種注入。
合理使用快取機制
建議使用快取機制快取獲得更好的效能。例如:redis、memcached等。
避免**的copy和paste
沒有理解**的含義,就呆板的拷貝複製。拷貝來的**未必就是對的。如果有重複**,意味著可以拆分出乙個功能函式。
盡量多使用框架
框架的目的是為了提高開發效率。框架是前輩們知識和經驗積累而來,是被證明了的成熟解決方案。絕大數框架基於mvc(模型檢視控制器)架構理念而開發。選擇適合自己的框架。
PHP程式設計師,這些MySQL錯誤,你曾經犯過了嗎
對於大多數web應用來說,資料庫都是乙個十分基礎性的部分。如果你在使用php,那麼你很可能也在使用mysql lamp系列中舉足輕重的乙份子。對於很多新手們來說,使用php可以在短短幾個小時之內輕鬆地寫出具有特定功能的 但是,構建乙個穩定可靠的資料庫卻需要花上一些時日和相關技能。下面列舉了我曾經犯過...
程式設計師規範
程式設計師每天該做的事 1 總結自己一天任務的完成情況 最好的方式是寫工作日誌,把自己今天完成了什麼事情,遇見了什麼問題都記錄下來,日後翻看好處多多 2 考慮自己明天應該做的主要工作 把明天要做的事情列出來,並按照優先順序排列,第二天應該把自己效率最高的時間分配給最重要的工作 3 考慮自己一天工作中...
作為程式設計師,你的夢想是什麼?
撰文 alice 專欄 九章演算法 1.用我的程式設計技能或者通過程式設計賺一大筆錢來使這個社會變得更美好。贈與窮人冰箱,電視機,金子等並不能減輕他們的貧困,但教會他們如何賺錢,必定是把他們們放在了從生存到生活的快車道上。我的模型是,買很多10到100英畝的土地,只雇用乞丐工作。這些農場上種植出來的...