|
你是php菜鳥,如果你:
1. 不會(huì)利用如phpDoc這樣的工具來恰當(dāng)?shù)刈⑨屇愕拇a
2. 對(duì)優(yōu)秀的集成開發(fā)環(huán)境如Zend Studio或Eclipse PDT視而不見
3. 從未用過任何形式的版本控制系統(tǒng),如Subclipse
4. 不采用某種編碼與命名標(biāo)準(zhǔn),以及通用約定,不能在項(xiàng)目開發(fā)周期里貫徹落實(shí)
5. 不使用統(tǒng)一開發(fā)方式
6. 不轉(zhuǎn)換(或)也不驗(yàn)證某些輸入或SQL查詢串(譯注:參考php相關(guān)函數(shù))
7. 不在編碼之前徹底規(guī)劃你的程序
8. 不使用測(cè)試驅(qū)動(dòng)開發(fā)
9. 不在錯(cuò)誤開啟狀態(tài)下進(jìn)行編碼和測(cè)試(譯注:參考php函數(shù)error_reporting)
10. 對(duì)調(diào)試器的好處視而不見
11. 不重構(gòu)你的代碼
12. 不使用類似MVC模式把程序的不同層次劃分開
13. 不知道這些概念:KISS, DRY, MVC, OOP, REST
14. 不用return而是直接在你的函數(shù)或類中輸出(echo/print)內(nèi)容
15. 對(duì)單元測(cè)試或通用測(cè)試的優(yōu)點(diǎn)視而不見
16. 總是返回硬編碼的HTML,卻不返回純粹的數(shù)據(jù),字符串,或?qū)ο?
17. 總是對(duì)“消息”和“配置參數(shù)”進(jìn)行硬編碼
18. 不對(duì)SQL查詢語句做優(yōu)化
19. 不使用__autoload(譯注:參考php手冊(cè)相關(guān)描述)
20. 不允許智能錯(cuò)誤處理(譯注:參考PEAR的ErrorStack)
21. 使用$_GET替代$_POST來做具有破壞性的傳遞操作
22. 不知道怎么利用正則表達(dá)式
23. 從未聽說過SQL注入或跨站腳本
24. 不允許簡(jiǎn)易配置,也不允許類的構(gòu)造函數(shù)接受參數(shù)傳遞而后執(zhí)行set/get方法,或運(yùn)行時(shí)的常量定義
25. 不理解面向?qū)ο缶幊蹋∣OP)的優(yōu)勢(shì)和劣勢(shì)
26. 不視情形大小而濫用OOP
27. 自認(rèn)為實(shí)現(xiàn)可復(fù)用的軟件一定等于/需要讓你的代碼遵循OOP
28. 不利用智能缺省值
29. 沒有單一的配置文件
30. 不想暴露文件源碼,卻用.inc后綴名取代了.php
31. 不使用數(shù)據(jù)庫抽象層
32. 不能保持DRY作風(fēng),即不重復(fù)自己,如果你總是在復(fù)制粘貼一些東西,說明你設(shè)計(jì)得很差勁
33. 沒有實(shí)現(xiàn)讓一個(gè)函數(shù)/類/方法只做一件事,也不能組合利用它們
34. 沒能嘗試OOP的特長(zhǎng),如抽象類、接口、多態(tài)、繼承,訪問控制修飾符(譯注:如public, private, protected)
35. 不用現(xiàn)有的設(shè)計(jì)模式優(yōu)化你的程序體系設(shè)計(jì)
36. 不允許你的用戶在你擁有很多文件或目錄的情況下定義基礎(chǔ)目錄
37. 污染了名稱空間,比如用常見字符串命名你的庫函數(shù)
38. 使用數(shù)據(jù)庫表時(shí)不使用表前綴
39. 不使用統(tǒng)一的模板引擎
40. 不關(guān)注已有的php開發(fā)框架,懶于探索;其實(shí)先進(jìn)的開發(fā)理念和美妙代碼就蘊(yùn)含其中。
譯注:另有馬永占翻譯版本《php程序員的40點(diǎn)陋習(xí)》,簡(jiǎn)潔并配有譯者注釋。
php技術(shù):40個(gè)跡象表明你還是PHP菜鳥,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。