WEB開(kāi)發(fā)-WEB軟件開(kāi)發(fā)結(jié)構(gòu)原則
WEB軟件開(kāi)發(fā)的結(jié)構(gòu)原則,包括目錄結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)、代碼結(jié)構(gòu)、公用信息、文件和數(shù)據(jù)存放等。
WEB開(kāi)發(fā)主要針對(duì)的是B/S結(jié)構(gòu)的軟件開(kāi)發(fā)。
WEB軟件開(kāi)發(fā)結(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)連接近早
十、 盡量少使用SESSION與COOKIE
WEB軟件開(kāi)發(fā)結(jié)構(gòu)原則詳細(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)文件可供用戶(hù)下載,或查閱其源碼內(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)勁的話(huà),就當(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ì)不合理的話(huà),不管你的程序?qū)懙亩嗑洌瑢?xiě)得我容易,也不是不能發(fā)揮其最大作用與價(jià)值的。這就相當(dāng)于一個(gè)女人的胸部最大最豐滿(mǎn),但人不夠高,而且又黑,身體又不好,身架又殘疾,你會(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)。若是放在客戶(hù)端,他人就能用以上方法逃過(guò)審核了。但這樣做也有他不好之處,那就是當(dāng)數(shù)據(jù)量大時(shí),服務(wù)器會(huì)負(fù)載運(yùn)行,審核數(shù)據(jù)完整性是可開(kāi)銷(xiāo)時(shí)間與系統(tǒng)資源的。在客戶(hù)端就不會(huì)占用服務(wù)器太多的資源,因?yàn)樗加玫氖怯脩?hù)的資源。
(九) 連接數(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不太安全。
此文轉(zhuǎn)載自互聯(lián)網(wǎng),不符之處請(qǐng)發(fā)表看法!
WEB軟件開(kāi)發(fā)的結(jié)構(gòu)原則,包括目錄結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)、代碼結(jié)構(gòu)、公用信息、文件和數(shù)據(jù)存放等。
WEB開(kāi)發(fā)主要針對(duì)的是B/S結(jié)構(gòu)的軟件開(kāi)發(fā)。
WEB軟件開(kāi)發(fā)結(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)連接近早
十、 盡量少使用SESSION與COOKIE
WEB軟件開(kāi)發(fā)結(jié)構(gòu)原則詳細(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)文件可供用戶(hù)下載,或查閱其源碼內(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)勁的話(huà),就當(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ì)不合理的話(huà),不管你的程序?qū)懙亩嗑洌瑢?xiě)得我容易,也不是不能發(fā)揮其最大作用與價(jià)值的。這就相當(dāng)于一個(gè)女人的胸部最大最豐滿(mǎn),但人不夠高,而且又黑,身體又不好,身架又殘疾,你會(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)。若是放在客戶(hù)端,他人就能用以上方法逃過(guò)審核了。但這樣做也有他不好之處,那就是當(dāng)數(shù)據(jù)量大時(shí),服務(wù)器會(huì)負(fù)載運(yùn)行,審核數(shù)據(jù)完整性是可開(kāi)銷(xiāo)時(shí)間與系統(tǒng)資源的。在客戶(hù)端就不會(huì)占用服務(wù)器太多的資源,因?yàn)樗加玫氖怯脩?hù)的資源。
(九) 連接數(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不太安全。
此文轉(zhuǎn)載自互聯(lián)網(wǎng),不符之處請(qǐng)發(fā)表看法!