40個(gè)跡象表明你還是PHP菜鳥(niǎo)
51CTO之前曾報(bào)道過(guò)《從菜鳥(niǎo)到大師,細(xì)看程序員的五種層次》,在軟件開(kāi)發(fā)界,優(yōu)秀開(kāi)發(fā)者與一般程序員的差別還是比較大的。文章是作者的主觀感受:
如果你還有以下這些跡象,那你仍是PHP菜鳥(niǎo):
1. 不會(huì)利用如phpDoc這樣的工具來(lái)恰當(dāng)?shù)刈⑨屇愕拇a;
2. 對(duì)優(yōu)秀的集成開(kāi)發(fā)環(huán)境如Zend Studio或Eclipse PDT視而不見(jiàn);
3. 從未用過(guò)任何形式的版本控制系統(tǒng),如Subclipse;
4. 不采用某種編碼與命名標(biāo)準(zhǔn),以及通用約定,不能在項(xiàng)目開(kāi)發(fā)周期里貫徹落實(shí);
5. 不使用統(tǒng)一開(kāi)發(fā)方式;
6. 不轉(zhuǎn)換(或)也不驗(yàn)證某些輸入或SQL查詢串(參考PHP相關(guān)函數(shù));
7. 不在編碼之前徹底規(guī)劃你的程序;
8. 不使用測(cè)試驅(qū)動(dòng)開(kāi)發(fā);
9. 不在錯(cuò)誤開(kāi)啟狀態(tài)下進(jìn)行編碼和測(cè)試;
10. 對(duì)調(diào)試器的好處視而不見(jiàn);
11. 不重構(gòu)你的代碼;
12. 不使用類似MVC模式把程序的不同層次劃分開(kāi);
13. 不知道這些概念:KISS, DRY, MVC, OOP, REST;
14. 不用return而是直接在你的函數(shù)或類中輸出(echo/print)內(nèi)容;
15. 對(duì)單元測(cè)試或通用測(cè)試的優(yōu)點(diǎn)視而不見(jiàn);
16. 總是返回硬編碼的HTML,卻不返回純粹的數(shù)據(jù),字符串,或?qū)ο螅?/p>
17. 總是對(duì)“消息”和“配置參數(shù)”進(jìn)行硬編碼;
18. 不對(duì)SQL查詢語(yǔ)句做優(yōu)化;
19. 不使用__autoload;
20. 不允許智能錯(cuò)誤處理;
21. 使用$_GET替代$_POST來(lái)做具有破壞性的傳遞操作;
22. 不知道怎么利用正則表達(dá)式;
23. 從未聽(tīng)說(shuō)過(guò)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. 沒(méi)有單一的配置文件;
30. 不想暴露文件源碼,卻用.inc后綴名取代了.php;
31. 不使用數(shù)據(jù)庫(kù)抽象層;
32. 不能保持DRY作風(fēng),即不重復(fù)自己,如果你總是在復(fù)制粘貼一些東西,說(shuō)明你設(shè)計(jì)得很差勁;
33. 沒(méi)有實(shí)現(xiàn)讓一個(gè)函數(shù)/類/方法只做一件事,也不能組合利用它們;
34. 沒(méi)能嘗試OOP的特長(zhǎng),如抽象類、接口、多態(tài)、繼承,訪問(wèn)控制修飾符;
35. 不用現(xiàn)有的設(shè)計(jì)模式優(yōu)化你的程序體系設(shè)計(jì);
36. 不允許你的用戶在你擁有很多文件或目錄的情況下定義基礎(chǔ)目錄;
37. 污染了名稱空間,比如用常見(jiàn)字符串命名你的庫(kù)函數(shù);
38. 使用數(shù)據(jù)庫(kù)表時(shí)不使用表前綴;
39. 不使用統(tǒng)一的模板引擎;
40. 不關(guān)注已有的PHP開(kāi)發(fā)框架,懶于探索;其實(shí)先進(jìn)的開(kāi)發(fā)理念和美妙代碼就蘊(yùn)含其中。
如果你還有意見(jiàn),請(qǐng)?jiān)谠u(píng)論中和大家一起分享。
譯文地址:http://article.yeeyan.org/view/davidkoree/9329?from_com
【編輯推薦】