PHP垃圾代碼的特征介紹
我們?cè)陂_發(fā)一個(gè)程序的時(shí)候,經(jīng)常會(huì)在網(wǎng)上搜集很多其他人的程序代碼,但是如何正確的去選擇一個(gè)良好的程序代碼幫助自己解決問題呢?下面我們就為大家介紹有關(guān)PHP垃圾代碼的分別。#t#
如果你對(duì)要修改的軟件并不熟悉,那我建議你還是先好好看看這個(gè)軟件之后再作決定。那么如何能夠不作深入研究就能認(rèn)定這是垃圾代碼呢?這里給出10個(gè)PHP垃圾代碼的征兆,以供參考。
PHP垃圾代碼1、試圖改造面向?qū)ο竽P?,或是修改某個(gè)PHP語言特性
如果你發(fā)現(xiàn)一個(gè)類名為Object,那很有可能這個(gè)軟件的作者試圖改造面向?qū)ο竽P停ê芸赡苁且驗(yàn)樗约簩?duì)面向?qū)ο蟛⒉涣私猓瑥亩覀兛梢灶A(yù)料他所作的修改不僅限于此。遇到這種情況,還是快快關(guān)掉你的電話躲起來吧!
PHP垃圾代碼2、含有自定義的全局變量
查找代碼中的global關(guān)鍵字或$GLOBALS變量,如果發(fā)現(xiàn)以下代碼:
global $database, $my, $mainframe;
這就是臭名昭著的全局變量。如果你能告訴后兩個(gè)全局變量代表什么,那么我猜你對(duì)我的代碼很熟悉,或者你有超自然的力量。如果你還能告訴我哪些代碼會(huì)用到他們,那就太神奇了!總之,離它遠(yuǎn)點(diǎn)。
PHP垃圾代碼3、隨處可見的HTML和SQL
找找代碼中的HTML代碼和SQL語句,你應(yīng)該能夠很快地辨別這些代碼是否應(yīng)該出現(xiàn)在這里。如果你發(fā)現(xiàn)一個(gè)文件里既有HTML又有SQL,那恭喜你,你發(fā)現(xiàn)了最爛的軟件!
PHP垃圾代碼4、過于臃腫的類
查找***的三個(gè)類文件,看看類的名稱是否有清晰的職能?再看看它的方法,是否互相有關(guān)聯(lián)?如果不是,尖叫著離開吧!
PHP垃圾代碼5、大量的公開變量或靜態(tài)變量
如果你發(fā)現(xiàn)很多變量被定義為“public static”,那就把你的報(bào)價(jià)提高三倍吧。原因我就不用解釋了。
PHP垃圾代碼6、多層繼承關(guān)系
我們應(yīng)該盡量避免兩層以上的繼承關(guān)系。我曾花費(fèi)大量時(shí)間處理擁有過多不相關(guān)行為的對(duì)象。如果你知道多層繼承有什么用處,我會(huì)請(qǐng)你喝啤酒的。
PHP垃圾代碼7、試圖使用設(shè)計(jì)模式(只是試圖)
要知道代碼的作者是否使用設(shè)計(jì)模式,只需要檢索最常用的幾個(gè)就可以了,如factory(工廠模式),decorator(裝飾模式),strategy(策略模式)等。如果有,那你也能很快的識(shí)別作者是否真的會(huì)使用這些設(shè)計(jì)模式,或者只是想讓代碼看起來有趣些。如果是后者,那就快快離開吧。
PHP垃圾代碼8、不同錯(cuò)誤級(jí)別下的程序紊亂
一個(gè)完好的應(yīng)用程序應(yīng)該在各個(gè)錯(cuò)誤級(jí)別下都能正常運(yùn)行。用/error_level\(.*\)/查找代碼是否修改了錯(cuò)誤級(jí)別。如果有,改為E_STRICT再運(yùn)行一下看看。
PHP垃圾代碼9、有個(gè)叫core的目錄
當(dāng)整個(gè)應(yīng)用程序都要依靠某些代碼才能運(yùn)行時(shí),把這堆代碼放入一個(gè)叫core的目錄里會(huì)是個(gè)不錯(cuò)的方法。但是,除了目錄的名字好聽些,這種方法往往預(yù)示著糟糕的設(shè)計(jì)。
PHP垃圾代碼10、用自己設(shè)計(jì)的模板語言
對(duì)這種情況一定要充滿恐懼。因?yàn)檫@些家伙試圖造出屬于自己的輪子!如果不小心這一點(diǎn)的話,你會(huì)發(fā)現(xiàn)你一天的美好時(shí)光都用在如何模擬一個(gè)for循環(huán)上。