???? 很多時(shí)候我們都想開(kāi)發(fā)一個(gè)萬(wàn)用的系統(tǒng),這樣面對(duì)客戶(hù)的需求就真的可以隨機(jī)應(yīng)變了,如果客戶(hù)要改變一個(gè)模塊,那按一個(gè)按鈕就可以輕松應(yīng)變,可惜要做到這個(gè)不知道要到什么時(shí)候了,像我們這個(gè)級(jí)別的程序員如果能夠最大程度上應(yīng)對(duì)客戶(hù)需求已經(jīng)相當(dāng)不錯(cuò)了,畢竟離一個(gè)合格的架構(gòu)師還很遠(yuǎn)呀。
???? 還是別扯太遠(yuǎn),解決眼前的問(wèn)題先。所以現(xiàn)在的問(wèn)題是如何編寫(xiě)出可擴(kuò)展的或者說(shuō)是易于擴(kuò)展的代碼,從最原始的時(shí)代開(kāi)始說(shuō)起顯然是個(gè)不明智的方法,或許可以從我本身的經(jīng)歷說(shuō)吧,最早以前,用asp做b/s系統(tǒng),一個(gè)頁(yè)面來(lái)顯示,例如list.php,顯示需要展示的內(nèi)容的列表,通常這個(gè)頁(yè)面會(huì)有一個(gè)按鈕,連接到insert.php,也就是需要用戶(hù)輸入表單,然后提交到insert_do.php,處理用戶(hù)的輸入,這樣一個(gè)輸入流算完成了,以前通常這樣做,但是當(dāng)現(xiàn)在回憶起來(lái)只能說(shuō),那是個(gè)多么累的方法,或許自己心里會(huì)辯解到至少頁(yè)面代碼很清晰。后來(lái)的想法是,把功能都放一個(gè)頁(yè)面,例如有l(wèi)ist.php和 list_do.php根據(jù)url上參數(shù)的不同實(shí)現(xiàn)不同的操作,例如inset,update,delete等等,可是,事情總是2面的,很多時(shí)候擔(dān)心客戶(hù)端可以使用參數(shù)來(lái)自定義提交,是不是安全性降低了很多嗎?偶然的機(jī)會(huì)為了奧林巴斯的網(wǎng)站,可以看出是韓國(guó)人寫(xiě)的,居然在提交的時(shí)候自定義一個(gè)form,讓數(shù)據(jù)隱藏,開(kāi)始覺(jué)得這個(gè)是個(gè)不錯(cuò)的注意,安全性高又靈活。后來(lái)仔細(xì)分析其實(shí)沒(méi)多大實(shí)際意義,其實(shí)一個(gè)懂得用url侵入的人也應(yīng)該知道自己寫(xiě)個(gè)靜態(tài)頁(yè)面也一樣,所以很矛盾啊,后來(lái)干脆不管了,還是用url傳參數(shù),不同的是傳到自己本身頁(yè)面,所以最后只需要一個(gè)頁(yè)面就可以完成所有的工作。雖然一個(gè)頁(yè)面可能有幾千行(想起當(dāng)初大學(xué)老師在教c++的時(shí)候曾經(jīng)提過(guò)他看過(guò)800多行的代碼,但是同學(xué)們“哇”聲一片,自己那時(shí)候也發(fā)誓以后不搞這行當(dāng),這玩意傷腦子,可是結(jié)果。。。),只要注釋寫(xiě)的好,維護(hù)就ok了,現(xiàn)在最喜歡做的事情就是寫(xiě)注釋?zhuān)瑒濐?lèi)別,感覺(jué)越整齊越舒服。為了讓我的系統(tǒng)能夠活得長(zhǎng)久,盡量寫(xiě)得濃縮,分類(lèi)盡量詳細(xì),頁(yè)面名稱(chēng)盡量好,所有功能都在一個(gè)頁(yè)面里面,甚至連圖片的名稱(chēng)也要好,必須為gif或者png,我這樣的要求我的老婆,因?yàn)樗亲雒拦さ模琧ss寫(xiě)得也要好,就是因?yàn)檫@個(gè)css,最近碰到好多難題哦,這個(gè)暫且不談,不管界面用什么技術(shù),反正程序編碼必須整齊,所有html元素都寫(xiě)成function,數(shù)據(jù)庫(kù)操作也是,曾經(jīng)一度在function和class之間徘徊,現(xiàn)在決定php5.0以下用function,以上用class,大項(xiàng)目用ADODB,當(dāng)然要優(yōu)化一下,也就是改一改,討厭的就是那個(gè)GPL,改好了怎么發(fā)布呢?E文不好,吃大虧啊。其他就沒(méi)什么問(wèn)題了,前端顯示直接寫(xiě)或者模板都可以,這個(gè)我不關(guān)心,現(xiàn)在主要攻克幾個(gè)開(kāi)源的協(xié)同oa,還有ecommerce。
????? 其實(shí)有時(shí)候想把公用的function和class寫(xiě)進(jìn)include里面,某個(gè)模塊的function和class,或者干脆寫(xiě)class,放在同級(jí)目錄下,每個(gè)頁(yè)面有一個(gè),舉例來(lái)說(shuō) list.php 有個(gè)list.inc.php,后者包括所有的函數(shù)和功能讓list.php使用,這也不外乎是個(gè)好方法,可是沒(méi)有仔細(xì)想過(guò),后來(lái)稍微研究.net了一下,有點(diǎn)異曲同工。
????? 好了,以上是我的一些心得,不知道還有什么好的方法沒(méi)有,那要看廣大的網(wǎng)友了,毛主席說(shuō)過(guò)人多力量大。
???? 還是別扯太遠(yuǎn),解決眼前的問(wèn)題先。所以現(xiàn)在的問(wèn)題是如何編寫(xiě)出可擴(kuò)展的或者說(shuō)是易于擴(kuò)展的代碼,從最原始的時(shí)代開(kāi)始說(shuō)起顯然是個(gè)不明智的方法,或許可以從我本身的經(jīng)歷說(shuō)吧,最早以前,用asp做b/s系統(tǒng),一個(gè)頁(yè)面來(lái)顯示,例如list.php,顯示需要展示的內(nèi)容的列表,通常這個(gè)頁(yè)面會(huì)有一個(gè)按鈕,連接到insert.php,也就是需要用戶(hù)輸入表單,然后提交到insert_do.php,處理用戶(hù)的輸入,這樣一個(gè)輸入流算完成了,以前通常這樣做,但是當(dāng)現(xiàn)在回憶起來(lái)只能說(shuō),那是個(gè)多么累的方法,或許自己心里會(huì)辯解到至少頁(yè)面代碼很清晰。后來(lái)的想法是,把功能都放一個(gè)頁(yè)面,例如有l(wèi)ist.php和 list_do.php根據(jù)url上參數(shù)的不同實(shí)現(xiàn)不同的操作,例如inset,update,delete等等,可是,事情總是2面的,很多時(shí)候擔(dān)心客戶(hù)端可以使用參數(shù)來(lái)自定義提交,是不是安全性降低了很多嗎?偶然的機(jī)會(huì)為了奧林巴斯的網(wǎng)站,可以看出是韓國(guó)人寫(xiě)的,居然在提交的時(shí)候自定義一個(gè)form,讓數(shù)據(jù)隱藏,開(kāi)始覺(jué)得這個(gè)是個(gè)不錯(cuò)的注意,安全性高又靈活。后來(lái)仔細(xì)分析其實(shí)沒(méi)多大實(shí)際意義,其實(shí)一個(gè)懂得用url侵入的人也應(yīng)該知道自己寫(xiě)個(gè)靜態(tài)頁(yè)面也一樣,所以很矛盾啊,后來(lái)干脆不管了,還是用url傳參數(shù),不同的是傳到自己本身頁(yè)面,所以最后只需要一個(gè)頁(yè)面就可以完成所有的工作。雖然一個(gè)頁(yè)面可能有幾千行(想起當(dāng)初大學(xué)老師在教c++的時(shí)候曾經(jīng)提過(guò)他看過(guò)800多行的代碼,但是同學(xué)們“哇”聲一片,自己那時(shí)候也發(fā)誓以后不搞這行當(dāng),這玩意傷腦子,可是結(jié)果。。。),只要注釋寫(xiě)的好,維護(hù)就ok了,現(xiàn)在最喜歡做的事情就是寫(xiě)注釋?zhuān)瑒濐?lèi)別,感覺(jué)越整齊越舒服。為了讓我的系統(tǒng)能夠活得長(zhǎng)久,盡量寫(xiě)得濃縮,分類(lèi)盡量詳細(xì),頁(yè)面名稱(chēng)盡量好,所有功能都在一個(gè)頁(yè)面里面,甚至連圖片的名稱(chēng)也要好,必須為gif或者png,我這樣的要求我的老婆,因?yàn)樗亲雒拦さ模琧ss寫(xiě)得也要好,就是因?yàn)檫@個(gè)css,最近碰到好多難題哦,這個(gè)暫且不談,不管界面用什么技術(shù),反正程序編碼必須整齊,所有html元素都寫(xiě)成function,數(shù)據(jù)庫(kù)操作也是,曾經(jīng)一度在function和class之間徘徊,現(xiàn)在決定php5.0以下用function,以上用class,大項(xiàng)目用ADODB,當(dāng)然要優(yōu)化一下,也就是改一改,討厭的就是那個(gè)GPL,改好了怎么發(fā)布呢?E文不好,吃大虧啊。其他就沒(méi)什么問(wèn)題了,前端顯示直接寫(xiě)或者模板都可以,這個(gè)我不關(guān)心,現(xiàn)在主要攻克幾個(gè)開(kāi)源的協(xié)同oa,還有ecommerce。
????? 其實(shí)有時(shí)候想把公用的function和class寫(xiě)進(jìn)include里面,某個(gè)模塊的function和class,或者干脆寫(xiě)class,放在同級(jí)目錄下,每個(gè)頁(yè)面有一個(gè),舉例來(lái)說(shuō) list.php 有個(gè)list.inc.php,后者包括所有的函數(shù)和功能讓list.php使用,這也不外乎是個(gè)好方法,可是沒(méi)有仔細(xì)想過(guò),后來(lái)稍微研究.net了一下,有點(diǎn)異曲同工。
????? 好了,以上是我的一些心得,不知道還有什么好的方法沒(méi)有,那要看廣大的網(wǎng)友了,毛主席說(shuō)過(guò)人多力量大。