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

重構(gòu)WEB

[摘要]1 Abstract 本文主要論述了如何建設(shè)web開發(fā)中的體系結(jié)構(gòu)。并且使用PHP程序設(shè)計語言來闡述構(gòu)建WEB開發(fā)體系結(jié)構(gòu)的實例。2 前言 web是internet應(yīng)用的一種方式,從它在...
1 Abstract
本文主要論述了如何建設(shè)web開發(fā)中的體系結(jié)構(gòu)。并且使用PHP程序設(shè)計語言來闡述構(gòu)建WEB開發(fā)體系結(jié)構(gòu)的實例。

2 前言
web是internet應(yīng)用的一種方式,從它在1990年出現(xiàn)以來,發(fā)展一直很快。從最初的僅僅是文檔瀏覽/查詢到現(xiàn)在的基于web方式的應(yīng)用技術(shù),web技術(shù)和應(yīng)用水平每年都在快速更新和提高。
我們可以使用各種各樣的語言來開發(fā)web應(yīng)用。我們將要使用的開發(fā)語言是PHP,PHP在1995年開發(fā)出第一個版本,到2001年7月根據(jù)E-SOFT的統(tǒng)計已經(jīng)有600萬個站點在使用PHP。
參考:
http://www.securityspace.com/s_survey/data/
http://www.w3.org
http://www.php.net

3 問題
WEB的主要功能是傳輸用戶需要的數(shù)據(jù)資料,開發(fā)WEB動態(tài)網(wǎng)頁也就是開發(fā)用戶獲得需要的數(shù)據(jù)的過程。
有許多程序員開發(fā)各種各樣的WEB應(yīng)用系統(tǒng)僅僅是CASE BY CASE的去做,每次完成一個項目之后又需要做另一個功能相似的項目,而在每次完成之后軟件的可重用性和成熟性沒有合適的方式得到保證。
僅僅是依靠程序員自身的開發(fā)經(jīng)驗來控制代碼質(zhì)量或者使用只有自己才能重用的代碼是不能適應(yīng)大規(guī)模的軟件生產(chǎn)的。
讓我們開發(fā)一個可以大家共享的庫和結(jié)構(gòu)來開發(fā)WEB應(yīng)用吧。

4 目標(biāo)
¨ 對數(shù)據(jù)庫等低層操作對象容易封裝
¨ 對開發(fā)代碼容易進行版本管理和分發(fā)
¨ 對常用應(yīng)用系統(tǒng)開發(fā)通用應(yīng)用模塊
¨ 對用戶定制系統(tǒng)容易采用低層對象構(gòu)建
¨ 應(yīng)用容易通過開放接口集成

5 方案
我們可以容易找到一些現(xiàn)成的方案:
¨ microsoft的 .net
¨ sun的j2ee系列
但世界上沒有免費的晚餐。
如果使用.net的東西,那末我的設(shè)計就綁定在一個專有平臺上,然后我開發(fā)的東西還要對這個容易崩潰的系統(tǒng)、不喜歡兼容其他系統(tǒng)的廠商交取高額費用。
如果使用j2ee,我也不喜歡一些很笨重緩慢的體系結(jié)構(gòu)。并且這個方案也不能完全滿足我的要求。
所幸,我們還有其他的選擇:opensource世界的偉大工作:
我們將采用PHP和其他的一些東西來構(gòu)建我們的應(yīng)用系統(tǒng),我們將容易了解低層的細(xì)節(jié)問題,我們將有一個友好、輕靈、功能齊全并且穩(wěn)定的系統(tǒng)來完成我們的工作,我們將容易得到其他系統(tǒng)類似的系統(tǒng)設(shè)計和開發(fā)經(jīng)驗,我們還可以不用擔(dān)心版權(quán)問題。;)

參考:
http://www.microsoft.com/china/net/?MSCOMTB=ICP_Microsoft%20.NET
http://java.sun.com/j2ee/
http://www.valinux.com/



6 采用PHP提供的模型

下面是internet小組在系統(tǒng)結(jié)構(gòu)模型上的示意圖:


圖一 PHP的WEB開發(fā)模型

這幅圖中其他部分我都不談了,只描述我們需要做的web結(jié)構(gòu)上的工作

6.1 類封裝層
這一層我們將完成整個站點的底層數(shù)據(jù)構(gòu)建:
我們參照phplib(http://phplib.netuse.de )和siteManager(http://www.roadsend.com )的結(jié)構(gòu)來實現(xiàn)對異種數(shù)據(jù)庫的封裝和站點開發(fā)過程中必須的類:



圖二 類封裝層結(jié)構(gòu)(引用siteManager的資料)
這里面包括了下面的類:
¨站點配置
¨基本模塊----數(shù)據(jù)庫訪問 等
¨對話管理
¨界面模版管理
¨輸入類型實體-選擇/文本等
¨輸入實體過濾器---email過濾器/數(shù)字過濾器
¨debug

通過這樣的結(jié)構(gòu)我們可以完成class layer的功能,提供整對web開發(fā)的最底層類。

6.2 應(yīng)用總線
應(yīng)用總線是從某種意義上來講是個概念層的東西。它提供一個接口來連接應(yīng)用,讓各種通過class layer編寫的應(yīng)用模塊容易結(jié)合在一起。
我們先了解一下總線的意義,拿硬件的總線做個比喻:
網(wǎng)卡、聲卡、顯卡這三個不同用途的硬件可以通過PCI總線連接到一起,并且通過CPU協(xié)同統(tǒng)一協(xié)調(diào)的工作,您不會因為這些硬件是由不同廠商提供的而無法正常工作。因為PCI總線是工業(yè)標(biāo)準(zhǔn)的通訊方式,這些硬件都使用同一種"語言"來交流。



圖三 一個硬件總線結(jié)構(gòu)的樣例

我們的任務(wù)要完成的就是這樣一個"WEB軟件應(yīng)用模塊總線"結(jié)構(gòu):
這似乎很難,所幸的是,phpgroupware和webmin都可以作為一個好的例子:



圖四 web應(yīng)用總線示意圖

通過統(tǒng)一的接口協(xié)議,我們可以容易集成應(yīng)用到統(tǒng)一的整體,并擁有一個應(yīng)用開發(fā)平臺。
具體的內(nèi)容在這里就不再多談了。

參考:
http://www.phpgroupware.org
http://www.webmin.com

7 結(jié)論
我們通過上面的系統(tǒng)結(jié)構(gòu)設(shè)計,并在許多網(wǎng)站和內(nèi)部web應(yīng)用系統(tǒng)上的具體應(yīng)用,可以逐漸形成自己的成熟、穩(wěn)定的系統(tǒng)結(jié)構(gòu)體系。
并且在系統(tǒng)開發(fā)過程中可以有效的利用工具來自動生成web開發(fā)的默認(rèn)模塊配置,加快web應(yīng)用開發(fā)和產(chǎn)品化進程。





標(biāo)簽:重構(gòu)WEB