明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

WEB軟件結(jié)構(gòu)原則

[摘要]一、 目錄結(jié)構(gòu)清楚,不宜過(guò)深,復(fù)雜,路徑最好用相對(duì)地址 二、 命名適當(dāng) 三、 常變內(nèi)容、界面使模板較好 四、 共公信息統(tǒng)一存儲(chǔ) 五、 Include文件不可嵌入較多 六、 目錄下不可存儲(chǔ)太多內(nèi)容文件 七、 數(shù)據(jù)結(jié)構(gòu)要設(shè)計(jì)合理 八、 數(shù)據(jù)校驗(yàn)應(yīng)在服務(wù)器端 九、 連接數(shù)據(jù)庫(kù)近晚,斷開(kāi)連接近早 十、 盡...

 

一、 目錄結(jié)構(gòu)清楚,不宜過(guò)深,復(fù)雜,路徑最好用相對(duì)地址
二、 命名適當(dāng)
三、 常變內(nèi)容、界面使模板較好
四、 共公信息統(tǒng)一存儲(chǔ)
五、 Include文件不可嵌入較多
六、 目錄下不可存儲(chǔ)太多內(nèi)容文件
七、 數(shù)據(jù)結(jié)構(gòu)要設(shè)計(jì)合理
八、 數(shù)據(jù)校驗(yàn)應(yīng)在服務(wù)器端
九、 連接數(shù)據(jù)庫(kù)近晚,斷開(kāi)連接近早
十、 盡量少使用SESSION與COOKIE

詳細(xì)說(shuō)明:

(一) 目錄結(jié)構(gòu)清楚,不宜過(guò)深,復(fù)雜,路徑最好用相對(duì)地址
a) 什么樣的目錄放什么樣的內(nèi)容,這樣便于管理,使WEB程序的目錄結(jié)構(gòu),清楚明了,一看便知道某個(gè)文件夾下存儲(chǔ)了哪些功能模塊與內(nèi)容。若隨便存放,時(shí)間一長(zhǎng)久自己都將不從了解某目錄是用來(lái)做什么的。如:經(jīng)常要使用的可執(zhí)行文件最要存放在(項(xiàng)目根目錄)根目錄,這樣做主要是便于了解其作用,同時(shí)也為在程序中少輸入些地址字符。程序所用到的圖片統(tǒng)一存放在根目錄下images目錄中,若項(xiàng)目較大,分枝較多,可再在其目錄下建立也分枝程序相關(guān)的目錄名,存儲(chǔ)相關(guān)的圖片內(nèi)容。程序的配置文件與常用共公函數(shù)類(lèi)庫(kù)存放在include目錄中,存放在此目錄下的函數(shù)類(lèi)庫(kù)文件擴(kuò)展名得命名為:.php切不命名為.inc .ini之類(lèi)為擴(kuò)展名的文件,主要是防此此類(lèi)文件可供用戶下載,或查閱其源碼內(nèi)容,這樣對(duì)其調(diào)用方便明確。模板文件應(yīng)存儲(chǔ)在根目錄下templates目錄中,擴(kuò)展名為.html,如果項(xiàng)目較大,分類(lèi)較多,模板文件可分類(lèi)存放在下極目錄中。臨時(shí)文件存儲(chǔ)在根目錄tmp目錄中,此目錄通常設(shè)置為任何人都可讀可寫(xiě)。使用相對(duì)地址主要是方便程序移植。

 (二) 命名適當(dāng)
a) 命名最好是以程序用來(lái)作什么用來(lái)命名。若一個(gè)單詞就要描述則用小寫(xiě)單詞來(lái)命名,若要用多個(gè)單詞方能代表,也以小寫(xiě)單詞之間加下劃線連接。要注意命名不可過(guò)長(zhǎng),這樣就不方便了,雖然能表達(dá)的更明確,但打字難打啊。程序中函數(shù)命名也可與此相同。不好之上也有,那就是每次命名都得要花時(shí)間去想個(gè)較合適的名字,由其是對(duì)于是我們這種英文水評(píng)較差的人來(lái)說(shuō)可不是一件容易的事啊。(慘啊,哈哈。

(三) 常變內(nèi)容、界面使模板較好
a) 常變內(nèi)容、界面使用模板較好,這是因?yàn)楫?dāng)我某天感覺(jué)某不頁(yè)面不美觀時(shí)尚時(shí),我想更換較新較好的界面,這時(shí)就用得上了。如果是按照傳統(tǒng)的制作將HTML頁(yè)面內(nèi)容放在程序中處理輸入時(shí),較麻煩非得要更改程序不可,這可能會(huì)帶來(lái)較大的不便萬(wàn)一更改出錯(cuò),這就不太好了。(程序有很長(zhǎng)一段時(shí)沒(méi)有維護(hù)了,突然要改,一時(shí)之間是難免不發(fā)生改錯(cuò)的情況發(fā)生)。若是使用了模板則不用改程序,只要更改一下模板文件就行了。好了說(shuō)了這么我模板的好處,好像傳統(tǒng)的做法沒(méi)有一點(diǎn)好處是的,好像分文不值是的,也不是,模板也有它不好的地方,現(xiàn)在我也來(lái)說(shuō)說(shuō)它是怎么個(gè)不好的。傳統(tǒng)做法是把HTML代碼嵌入在WEB程序中,這樣做的好處是,執(zhí)行速度要比使用模板的要快,這是因?yàn)樗挥媒?jīng)過(guò)任何處理就能直接輸出,而模板就不一樣啦。模板先要打開(kāi)讀取模板文件到字符串變量可數(shù)組字符串變量中,這是要時(shí)間的吧?讀處完了之后還得花時(shí)間用字符串操作函數(shù)替換模板中模板變量吧?替換完成了方能進(jìn)入輸出。傳統(tǒng)做法與使用模板作法,您覺(jué)得哪個(gè)好呢?(我個(gè)人認(rèn)為如果是開(kāi)發(fā)訪問(wèn)量相當(dāng)大的網(wǎng)站,選擇傳統(tǒng)的作法是一個(gè)不錯(cuò)的選擇,我所說(shuō)的是相對(duì)不是絕對(duì),如果訪問(wèn)量再大那就不能用腳本語(yǔ)言去寫(xiě)了,那得用 CGI + Socket + Demon了。不說(shuō)了,說(shuō)遠(yuǎn)了,哈哈)

(四) 共公信息統(tǒng)一存儲(chǔ)
a) 共公信息統(tǒng)一存儲(chǔ),這主要為了方便團(tuán)隊(duì)開(kāi)發(fā)時(shí)都能進(jìn)行調(diào)用用的最常的函數(shù),不用每個(gè)開(kāi)發(fā)人員都復(fù)制一份或自己寫(xiě)一份存儲(chǔ)在程序文件中,這樣做浪費(fèi)空間同時(shí)效率效果也不好。

(五) Include文件不可嵌入較多
a) Include文件不可嵌入較多,這是因?yàn)槊看纬绦騣nclude某個(gè)文件時(shí),是要打開(kāi)讀取這個(gè)文件的,這是要時(shí)間的哦,再就是說(shuō)處理路徑時(shí)可能會(huì)遇到較難發(fā)現(xiàn)的BUG問(wèn)題。

(六) 目錄下不可存儲(chǔ)太多內(nèi)容文件
a) 目錄下不可存儲(chǔ)太多內(nèi)容文件,你有沒(méi)有發(fā)現(xiàn)?每當(dāng)你進(jìn)入windows的system32文件夾時(shí)通常打開(kāi)的時(shí)間要比打開(kāi)其它文件夾時(shí)要長(zhǎng)久點(diǎn)呢?這主要是因?yàn)閟ystem32這個(gè)文件夾中文件較多,當(dāng)你打開(kāi)系統(tǒng)得花時(shí)間查找文件并顯示吧?如果文件較多較大時(shí)最好是分目錄分盤(pán)符來(lái)處理。假若您的機(jī)器夠好夠強(qiáng)勁的話,就當(dāng)我沒(méi)說(shuō)過(guò),那就得另當(dāng)別論了。

(七) 數(shù)據(jù)結(jié)構(gòu)要設(shè)計(jì)合理
a) 數(shù)據(jù)結(jié)構(gòu)要設(shè)計(jì)合理,如果數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)不合理的話,不管你的程序?qū)懙亩嗑,?xiě)得我容易,也不是不能發(fā)揮其最大作用與價(jià)值的。這就相當(dāng)于一個(gè)女人的胸部最大最豐滿,但人不夠高,而且又黑,身體又不好,身架又殘疾,你會(huì)說(shuō)她美麗完美嗎?程序也一樣,有些代碼沉長(zhǎng)又不起作用,存在也沒(méi)有什么用。數(shù)據(jù)結(jié)構(gòu)要精簡(jiǎn)明了。

(八) 數(shù)據(jù)校驗(yàn)應(yīng)在服務(wù)器端

a) 數(shù)據(jù)校驗(yàn)應(yīng)在服務(wù)器端,這是因?yàn)榫退闶撬瞬粡奈覀兊捻?yè)面輸入數(shù)據(jù),自己做了個(gè)鏈接地址(GET)或自己做了個(gè)表單用POST方式傳送數(shù)據(jù),我們的程序也將進(jìn)入核對(duì)查驗(yàn)。若是放在客戶端,他人就能用以上方法逃過(guò)審核了。但這樣做也有他不好之處,那就是當(dāng)數(shù)據(jù)量大時(shí),服務(wù)器會(huì)負(fù)載運(yùn)行,審核數(shù)據(jù)完整性是可開(kāi)銷(xiāo)時(shí)間與系統(tǒng)資源的。在客戶端就不會(huì)占用服務(wù)器太多的資源,因?yàn)樗加玫氖怯脩舻馁Y源。

(九) 連接數(shù)據(jù)庫(kù)近晚,斷開(kāi)連接近早
a) 連接數(shù)據(jù)庫(kù)近晚,斷開(kāi)連接近早,這主要是因?yàn)檫B接數(shù)據(jù)是要時(shí)間的吧?連接上了不即時(shí)使用也要占用系統(tǒng)資源吧?連接數(shù)據(jù)庫(kù)連接數(shù)量是有限制的吧?所以得盡晚連接,盡早斷開(kāi)連接,這個(gè)做能使占用系統(tǒng)資源最少,為下一次連接提供條件。

(十) 盡量少使用SESSION與COOKIE
a) 盡量少使用SESSION與COOKIE,因?yàn)槭褂肧ESSION是要占用系統(tǒng)資源的,SESSION是存儲(chǔ)在服務(wù)器端的,每次讀取SESSION中的數(shù)據(jù)是要較大開(kāi)銷(xiāo)的。COOKIE雖然不占用服務(wù)器資源,但COOKIE不太安全。


OK,就說(shuō)到此吧。此文純屬個(gè)人看法,不符之處請(qǐng)多多指導(dǎo),諒解!