知識(shí)
不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價(jià)值,我們?cè)谧非笃湟曈X(jué)表現(xiàn)的同時(shí),更側(cè)重于功能的便捷,營(yíng)銷(xiāo)的便利,運(yùn)營(yíng)的高效,讓網(wǎng)站成為營(yíng)銷(xiāo)工具,讓軟件能切實(shí)提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序?yàn)楹笃谏?jí)提供便捷的支持!
您當(dāng)前位置>首頁(yè) » 新聞資訊 » 網(wǎng)站建設(shè) >
如何選擇Web開(kāi)發(fā)框架
發(fā)表時(shí)間:2006-6-9
發(fā)布人:葵宇科技
瀏覽次數(shù):50
如何選擇Web開(kāi)發(fā)框架
開(kāi)發(fā)框架的選擇,始終是個(gè)仁者見(jiàn)仁、智者見(jiàn)智的事情。尤其是Web層的開(kāi)發(fā)框架,數(shù)量非常多,而且各有特色,如:Struts、WebWork、Spring MVC、Tapestry、JSF、WebPage3.0……等等。
下面先來(lái)看看為什么要使用Web開(kāi)發(fā)框架
一:使用框架的必然性
框架,即framework。其實(shí)就是某種應(yīng)用的半成品,把不同應(yīng)用程序中有共性的一些東西抽取出來(lái),做成一個(gè)半成品程序,這樣的半成品就是所謂的程序框架。
軟件系統(tǒng)發(fā)展到今天已經(jīng)很復(fù)雜了,特別是服務(wù)器端軟件,涉及到的知識(shí),內(nèi)容,問(wèn)題太多。在某些方面使用別人成熟的框架,就相當(dāng)于讓別人幫你完成一些基礎(chǔ)工作,你只需要集中精力完成系統(tǒng)的業(yè)務(wù)邏輯設(shè)計(jì)。這樣每次開(kāi)發(fā)就不用白手起家,而是可以在這個(gè)基礎(chǔ)上開(kāi)始搭建。
使用框架的最大好處:減少重復(fù)開(kāi)發(fā)工作量、縮短開(kāi)發(fā)時(shí)間、降低開(kāi)發(fā)成本。同時(shí)還有其它的好處,如:使程序設(shè)計(jì)更合理、程序運(yùn)行更穩(wěn)定等?;谶@些原因,基本上現(xiàn)在在開(kāi)發(fā)中,都會(huì)選用某些合適的開(kāi)發(fā)框架,來(lái)幫助快速高效的開(kāi)發(fā)應(yīng)用系統(tǒng)。
了解了使用框架的必然性,下面來(lái)看看如何選擇,當(dāng)然我們的話題集中在Web層的開(kāi)發(fā)框架。在談這個(gè)問(wèn)題之前,先來(lái)看看我們?cè)赪eb開(kāi)發(fā)中究竟需要做些什么工作:
二:Web層開(kāi)發(fā)的工作
在J2EE開(kāi)發(fā)中,分層是基本的思想,3層架構(gòu)或者多層架構(gòu)早已深入人心,在這里我們就把目光集中到Web層,看看到底Web層開(kāi)發(fā)做了那些工作:
1:數(shù)據(jù)展示
Web層需要從邏輯層獲取需要展示的數(shù)據(jù),然后以合理的方式在頁(yè)面進(jìn)行展示
2:人機(jī)交互
用戶(hù)需要從界面上輸入數(shù)據(jù),在界面上進(jìn)行按鈕點(diǎn)擊,進(jìn)而觸發(fā)事件,標(biāo)準(zhǔn)的事件驅(qū)動(dòng)模型,然后跟后臺(tái)進(jìn)行數(shù)據(jù)交換,出現(xiàn)新的界面。
3:收集數(shù)據(jù),調(diào)用邏輯層接口
Web層收到用戶(hù)的事件請(qǐng)求,需要調(diào)用相應(yīng)的邏輯層接口來(lái)進(jìn)行處理,Web層是不會(huì)有任何邏輯處理的。調(diào)用邏輯層接口,需要傳遞參數(shù),這時(shí)需要收集用戶(hù)在界面上輸入的數(shù)據(jù),然后進(jìn)行組織,組織成為邏輯層接口需要的數(shù)據(jù)封裝形式(通常都是ValueObject)。
4:根據(jù)邏輯層的數(shù)據(jù)來(lái)重新展示頁(yè)面
邏輯層處理完了,需要返回?cái)?shù)據(jù)或信息到界面上。這個(gè)時(shí)候Web層需要根據(jù)返回的值選擇合適的頁(yè)面,然后展示這些數(shù)據(jù)或者信息。
從上面可以看出,Web層開(kāi)發(fā)的主要工作集中在展示上,也就是圖形用戶(hù)界面。這一部分是用戶(hù)直觀感受應(yīng)用程序的窗口,也是用戶(hù)要求最多的地方,其表現(xiàn)形式也是最豐富的。
三:Web層開(kāi)發(fā)的步驟
寫(xiě)得手好累啊:) 給點(diǎn)支持,板磚也行啊,如果沒(méi)人頂就不往下寫(xiě)了,呵呵
開(kāi)個(gè)玩笑,主要是昨天還沒(méi)有寫(xiě)完,后續(xù)的
三:Web層開(kāi)發(fā)的步驟
下面再來(lái)總結(jié)一下Web層開(kāi)發(fā)的大致步驟(也就是需要開(kāi)發(fā)人員做的工作):
注意:這里討論的Web層開(kāi)發(fā),是不使用任何開(kāi)發(fā)框架時(shí)候的開(kāi)發(fā)。
1:寫(xiě)頁(yè)面Html,到底有哪些數(shù)據(jù)需要在界面上表現(xiàn)
2:每個(gè)數(shù)據(jù)的具體表現(xiàn)形式,如:有的需要表現(xiàn)成為下拉列表,有的需要表現(xiàn)成為單選按鈕等。
3:界面表現(xiàn)形式的邏輯布局,所謂邏輯布局是指某些數(shù)據(jù)的表現(xiàn)形式應(yīng)該放在前面,某些應(yīng)該放在后面;某些放在上面,某些放在下面。如:某個(gè)請(qǐng)假申請(qǐng)的業(yè)務(wù),有請(qǐng)假開(kāi)始時(shí)間和結(jié)束時(shí)間,很明顯開(kāi)始時(shí)間的表現(xiàn)就應(yīng)該排在結(jié)束時(shí)間的前面。而美工是負(fù)責(zé)最后頁(yè)面的美觀,一般美工不能動(dòng)界面的邏輯布局。
4:完成前面3步,頁(yè)面的表現(xiàn)形式的大致模樣就有了,下面需要來(lái)做功能性的開(kāi)發(fā)。第一個(gè)就是這些表現(xiàn)形式的值的來(lái)源,如:下拉列表顯示的值從什么地方來(lái)。值的來(lái)源方式很多,有數(shù)據(jù)庫(kù)中來(lái)、固定值、某斷程序運(yùn)行的中間結(jié)果、前面頁(yè)面?zhèn)鬟f過(guò)來(lái)等等,當(dāng)然典型的還是來(lái)自數(shù)據(jù)庫(kù)。
好了,確定了值的來(lái)源,開(kāi)發(fā)人員就要寫(xiě)代碼來(lái)獲取這些值,然后把這些值賦值到對(duì)應(yīng)的表現(xiàn)形式里面。
5:還有一些比較特殊,也就是真實(shí)操作的是一類(lèi)值,但是在界面上顯示的是另一類(lèi)值,比如:數(shù)據(jù)庫(kù)中有用戶(hù)編號(hào),到了界面上就得顯示用戶(hù)姓名,但是所有的操作都是要操作用戶(hù)編號(hào)的。我們把這種情況分做:真實(shí)值和表現(xiàn)值,他們有一定的內(nèi)在聯(lián)系。這些都是要開(kāi)發(fā)人員去轉(zhuǎn)化和維護(hù)的。
6:接下來(lái)就應(yīng)該開(kāi)發(fā)功能性的事件響應(yīng)了。用戶(hù)點(diǎn)擊了某個(gè)按鈕或者觸發(fā)了某個(gè)事件,首先是客戶(hù)端:數(shù)據(jù)檢測(cè)、客戶(hù)端事件處理;然后提交到服務(wù)端,服務(wù)端要獲取到客戶(hù)端提交的數(shù)據(jù),然后調(diào)用相應(yīng)的邏輯層接口來(lái)響應(yīng)。當(dāng)然如何寫(xiě)邏輯層的實(shí)現(xiàn)這里就不去談?wù)摿恕?
7:邏輯層執(zhí)行完過(guò)后,返回?cái)?shù)據(jù)和信息到Web層,開(kāi)發(fā)人員還需要寫(xiě)代碼去處理,選擇哪個(gè)頁(yè)面來(lái)顯示,如何顯示這些數(shù)據(jù)和信息等。
8:在整個(gè)交互的過(guò)程中,還必須考慮到如何控制權(quán)限,如:某些數(shù)據(jù)不能顯示,某些數(shù)據(jù)不能編輯等等;同樣還需要考慮到消息的配置和國(guó)際化等等。這些功能起源于邏輯層,但是實(shí)際的控制要到Web層,這些都需要開(kāi)發(fā)人員來(lái)控制。
9:完成了上面的開(kāi)發(fā)步驟,頁(yè)面基本的功能開(kāi)發(fā)就告一段落,接下來(lái)開(kāi)發(fā)人員需要考慮頁(yè)面美觀的問(wèn)題了。大家可能會(huì)說(shuō):“不是有美工嗎,還需要開(kāi)發(fā)人員干什么?”。事實(shí)上美工多半只能出一個(gè)靜態(tài)頁(yè)面的美化模版,美工對(duì)于一推Java代碼和Html的混雜物,多半是沒(méi)有辦法的,更不要說(shuō)還有一些內(nèi)容是動(dòng)態(tài)生成的,美工就更不可能搞定了。還是得開(kāi)發(fā)人員上陣,按照美工給的模版,開(kāi)始添加Css:class、id、style……
10:完成上面的開(kāi)發(fā),基本頁(yè)面的開(kāi)發(fā)工作就完成了,最后的一個(gè)步驟就是把各個(gè)頁(yè)面有機(jī)的組織起來(lái),開(kāi)發(fā)應(yīng)用程序的整體應(yīng)用導(dǎo)航框架,通常就是菜單,然后把各個(gè)功能頁(yè)面跟菜單結(jié)合起來(lái),形成一個(gè)完整的應(yīng)用。
在這里我們省略了開(kāi)發(fā)期反復(fù)的調(diào)試過(guò)程,僅總結(jié)開(kāi)發(fā)的步驟。
四:選擇Web開(kāi)發(fā)框架的目的
了解了如果沒(méi)有框架,我們需要做的工作,這對(duì)選擇框架有非常大的幫助。
框架,直白點(diǎn)說(shuō),就是一個(gè)半成品,能夠幫我們做一些事情的半成品。
框架的選擇,就是看哪個(gè)框架最合適,從而減少開(kāi)發(fā)的工作量,提高開(kāi)發(fā)的效率和質(zhì)量,并有效減少維護(hù)的工作量,最終達(dá)到節(jié)約綜合開(kāi)發(fā)成本,獲取更多的收益。
五:選擇Web開(kāi)發(fā)框架的標(biāo)準(zhǔn)
聲明:這里所談的選擇Web開(kāi)發(fā)框架的標(biāo)準(zhǔn),只是我們的總結(jié)和一家之言,并不是放之四海而皆準(zhǔn)的真理,請(qǐng)根據(jù)您的體會(huì)客觀的看待我們的總結(jié)。
另外:我們這里更多的討論業(yè)務(wù)功能性應(yīng)用程序的Web開(kāi)發(fā)框架。
1:選擇能夠?qū)ξ覀兊拈_(kāi)發(fā)過(guò)程提供更多、更好幫助的Web開(kāi)發(fā)框架
2:Web開(kāi)發(fā)框架的學(xué)習(xí)一定要簡(jiǎn)單,上手一定要快,沒(méi)有什么比使用能得到更深的體會(huì)。那些動(dòng)不動(dòng)就需要半個(gè)月或者一個(gè)月學(xué)習(xí)周期的框架,實(shí)在是有些恐怖。
3:一定要能得到很好的技術(shù)支持,在應(yīng)用的過(guò)程中,或多或少都會(huì)出現(xiàn)這樣或者那樣的問(wèn)題,如果不能很快很好的解決,會(huì)對(duì)整個(gè)項(xiàng)目開(kāi)發(fā)帶來(lái)影響。一定要考慮綜合成本,其實(shí)這是目前應(yīng)用開(kāi)源軟件最大的問(wèn)題,碰到問(wèn)題除了死肯文檔就是查閱源代碼,或者是網(wǎng)上搜尋解決的辦法,通常一個(gè)問(wèn)題就會(huì)導(dǎo)致1-2天的開(kāi)發(fā)停頓,嚴(yán)重的甚至需要一個(gè)星期或者更長(zhǎng),一個(gè)項(xiàng)目有上這么幾次,項(xiàng)目整體的開(kāi)發(fā)成本嗖嗖的就上去了。
4:Web開(kāi)發(fā)框架結(jié)合其他技術(shù)的能力一定要強(qiáng),比如:在邏輯層要使用Spring或者Ejb3,那么Web開(kāi)發(fā)框架一定要能很容易,很方便的與它們進(jìn)行結(jié)合。
5:Web開(kāi)發(fā)框架的擴(kuò)展能力一定要強(qiáng)。在好的框架都有力所不及的地方,這就要求能很容易的擴(kuò)展Web開(kāi)發(fā)框架的功能,以滿(mǎn)足新的業(yè)務(wù)需要。同時(shí)要注意擴(kuò)展的簡(jiǎn)單性,如果擴(kuò)展框架的功能代價(jià)非常大,還不如不用呢。
6:Web開(kāi)發(fā)框架最好能提供可視化的開(kāi)發(fā)和配置,可視化開(kāi)發(fā)對(duì)開(kāi)發(fā)效率的提高,已經(jīng)得到業(yè)界公認(rèn)。
7:Web開(kāi)發(fā)框架的設(shè)計(jì)結(jié)構(gòu)一定要合理,應(yīng)用程序會(huì)基于這個(gè)框架,框架設(shè)計(jì)的不合理會(huì)大大影響到整個(gè)應(yīng)用的可擴(kuò)展性。
8:Web開(kāi)發(fā)框架一定要是運(yùn)行穩(wěn)定的,運(yùn)行效率高的。框架的穩(wěn)定性和運(yùn)行效率直接影響到整個(gè)系統(tǒng)的穩(wěn)定性和效率。
9:Web開(kāi)發(fā)框架一定要能很好的結(jié)合目前公司的積累。在多年的開(kāi)發(fā)中已有了很多積累,不能因?yàn)槭褂肳eb開(kāi)發(fā)框架就不能再使用了,那未免有些得不償失。
10:選擇開(kāi)發(fā)框架另外要注意的一點(diǎn)就是:任何開(kāi)發(fā)框架都不可能是十全十美的,也不可能是適應(yīng)所有的應(yīng)用場(chǎng)景的,也就是說(shuō)任何開(kāi)發(fā)框架都有它適用的范圍。所以選擇的時(shí)候要注意判斷應(yīng)用的場(chǎng)景和開(kāi)發(fā)框架的適用性。
開(kāi)發(fā)框架的選擇,始終是個(gè)仁者見(jiàn)仁、智者見(jiàn)智的事情。尤其是Web層的開(kāi)發(fā)框架,數(shù)量非常多,而且各有特色,如:Struts、WebWork、Spring MVC、Tapestry、JSF、WebPage3.0……等等。
下面先來(lái)看看為什么要使用Web開(kāi)發(fā)框架
一:使用框架的必然性
框架,即framework。其實(shí)就是某種應(yīng)用的半成品,把不同應(yīng)用程序中有共性的一些東西抽取出來(lái),做成一個(gè)半成品程序,這樣的半成品就是所謂的程序框架。
軟件系統(tǒng)發(fā)展到今天已經(jīng)很復(fù)雜了,特別是服務(wù)器端軟件,涉及到的知識(shí),內(nèi)容,問(wèn)題太多。在某些方面使用別人成熟的框架,就相當(dāng)于讓別人幫你完成一些基礎(chǔ)工作,你只需要集中精力完成系統(tǒng)的業(yè)務(wù)邏輯設(shè)計(jì)。這樣每次開(kāi)發(fā)就不用白手起家,而是可以在這個(gè)基礎(chǔ)上開(kāi)始搭建。
使用框架的最大好處:減少重復(fù)開(kāi)發(fā)工作量、縮短開(kāi)發(fā)時(shí)間、降低開(kāi)發(fā)成本。同時(shí)還有其它的好處,如:使程序設(shè)計(jì)更合理、程序運(yùn)行更穩(wěn)定等?;谶@些原因,基本上現(xiàn)在在開(kāi)發(fā)中,都會(huì)選用某些合適的開(kāi)發(fā)框架,來(lái)幫助快速高效的開(kāi)發(fā)應(yīng)用系統(tǒng)。
了解了使用框架的必然性,下面來(lái)看看如何選擇,當(dāng)然我們的話題集中在Web層的開(kāi)發(fā)框架。在談這個(gè)問(wèn)題之前,先來(lái)看看我們?cè)赪eb開(kāi)發(fā)中究竟需要做些什么工作:
二:Web層開(kāi)發(fā)的工作
在J2EE開(kāi)發(fā)中,分層是基本的思想,3層架構(gòu)或者多層架構(gòu)早已深入人心,在這里我們就把目光集中到Web層,看看到底Web層開(kāi)發(fā)做了那些工作:
1:數(shù)據(jù)展示
Web層需要從邏輯層獲取需要展示的數(shù)據(jù),然后以合理的方式在頁(yè)面進(jìn)行展示
2:人機(jī)交互
用戶(hù)需要從界面上輸入數(shù)據(jù),在界面上進(jìn)行按鈕點(diǎn)擊,進(jìn)而觸發(fā)事件,標(biāo)準(zhǔn)的事件驅(qū)動(dòng)模型,然后跟后臺(tái)進(jìn)行數(shù)據(jù)交換,出現(xiàn)新的界面。
3:收集數(shù)據(jù),調(diào)用邏輯層接口
Web層收到用戶(hù)的事件請(qǐng)求,需要調(diào)用相應(yīng)的邏輯層接口來(lái)進(jìn)行處理,Web層是不會(huì)有任何邏輯處理的。調(diào)用邏輯層接口,需要傳遞參數(shù),這時(shí)需要收集用戶(hù)在界面上輸入的數(shù)據(jù),然后進(jìn)行組織,組織成為邏輯層接口需要的數(shù)據(jù)封裝形式(通常都是ValueObject)。
4:根據(jù)邏輯層的數(shù)據(jù)來(lái)重新展示頁(yè)面
邏輯層處理完了,需要返回?cái)?shù)據(jù)或信息到界面上。這個(gè)時(shí)候Web層需要根據(jù)返回的值選擇合適的頁(yè)面,然后展示這些數(shù)據(jù)或者信息。
從上面可以看出,Web層開(kāi)發(fā)的主要工作集中在展示上,也就是圖形用戶(hù)界面。這一部分是用戶(hù)直觀感受應(yīng)用程序的窗口,也是用戶(hù)要求最多的地方,其表現(xiàn)形式也是最豐富的。
三:Web層開(kāi)發(fā)的步驟
寫(xiě)得手好累啊:) 給點(diǎn)支持,板磚也行啊,如果沒(méi)人頂就不往下寫(xiě)了,呵呵
開(kāi)個(gè)玩笑,主要是昨天還沒(méi)有寫(xiě)完,后續(xù)的
三:Web層開(kāi)發(fā)的步驟
下面再來(lái)總結(jié)一下Web層開(kāi)發(fā)的大致步驟(也就是需要開(kāi)發(fā)人員做的工作):
注意:這里討論的Web層開(kāi)發(fā),是不使用任何開(kāi)發(fā)框架時(shí)候的開(kāi)發(fā)。
1:寫(xiě)頁(yè)面Html,到底有哪些數(shù)據(jù)需要在界面上表現(xiàn)
2:每個(gè)數(shù)據(jù)的具體表現(xiàn)形式,如:有的需要表現(xiàn)成為下拉列表,有的需要表現(xiàn)成為單選按鈕等。
3:界面表現(xiàn)形式的邏輯布局,所謂邏輯布局是指某些數(shù)據(jù)的表現(xiàn)形式應(yīng)該放在前面,某些應(yīng)該放在后面;某些放在上面,某些放在下面。如:某個(gè)請(qǐng)假申請(qǐng)的業(yè)務(wù),有請(qǐng)假開(kāi)始時(shí)間和結(jié)束時(shí)間,很明顯開(kāi)始時(shí)間的表現(xiàn)就應(yīng)該排在結(jié)束時(shí)間的前面。而美工是負(fù)責(zé)最后頁(yè)面的美觀,一般美工不能動(dòng)界面的邏輯布局。
4:完成前面3步,頁(yè)面的表現(xiàn)形式的大致模樣就有了,下面需要來(lái)做功能性的開(kāi)發(fā)。第一個(gè)就是這些表現(xiàn)形式的值的來(lái)源,如:下拉列表顯示的值從什么地方來(lái)。值的來(lái)源方式很多,有數(shù)據(jù)庫(kù)中來(lái)、固定值、某斷程序運(yùn)行的中間結(jié)果、前面頁(yè)面?zhèn)鬟f過(guò)來(lái)等等,當(dāng)然典型的還是來(lái)自數(shù)據(jù)庫(kù)。
好了,確定了值的來(lái)源,開(kāi)發(fā)人員就要寫(xiě)代碼來(lái)獲取這些值,然后把這些值賦值到對(duì)應(yīng)的表現(xiàn)形式里面。
5:還有一些比較特殊,也就是真實(shí)操作的是一類(lèi)值,但是在界面上顯示的是另一類(lèi)值,比如:數(shù)據(jù)庫(kù)中有用戶(hù)編號(hào),到了界面上就得顯示用戶(hù)姓名,但是所有的操作都是要操作用戶(hù)編號(hào)的。我們把這種情況分做:真實(shí)值和表現(xiàn)值,他們有一定的內(nèi)在聯(lián)系。這些都是要開(kāi)發(fā)人員去轉(zhuǎn)化和維護(hù)的。
6:接下來(lái)就應(yīng)該開(kāi)發(fā)功能性的事件響應(yīng)了。用戶(hù)點(diǎn)擊了某個(gè)按鈕或者觸發(fā)了某個(gè)事件,首先是客戶(hù)端:數(shù)據(jù)檢測(cè)、客戶(hù)端事件處理;然后提交到服務(wù)端,服務(wù)端要獲取到客戶(hù)端提交的數(shù)據(jù),然后調(diào)用相應(yīng)的邏輯層接口來(lái)響應(yīng)。當(dāng)然如何寫(xiě)邏輯層的實(shí)現(xiàn)這里就不去談?wù)摿恕?
7:邏輯層執(zhí)行完過(guò)后,返回?cái)?shù)據(jù)和信息到Web層,開(kāi)發(fā)人員還需要寫(xiě)代碼去處理,選擇哪個(gè)頁(yè)面來(lái)顯示,如何顯示這些數(shù)據(jù)和信息等。
8:在整個(gè)交互的過(guò)程中,還必須考慮到如何控制權(quán)限,如:某些數(shù)據(jù)不能顯示,某些數(shù)據(jù)不能編輯等等;同樣還需要考慮到消息的配置和國(guó)際化等等。這些功能起源于邏輯層,但是實(shí)際的控制要到Web層,這些都需要開(kāi)發(fā)人員來(lái)控制。
9:完成了上面的開(kāi)發(fā)步驟,頁(yè)面基本的功能開(kāi)發(fā)就告一段落,接下來(lái)開(kāi)發(fā)人員需要考慮頁(yè)面美觀的問(wèn)題了。大家可能會(huì)說(shuō):“不是有美工嗎,還需要開(kāi)發(fā)人員干什么?”。事實(shí)上美工多半只能出一個(gè)靜態(tài)頁(yè)面的美化模版,美工對(duì)于一推Java代碼和Html的混雜物,多半是沒(méi)有辦法的,更不要說(shuō)還有一些內(nèi)容是動(dòng)態(tài)生成的,美工就更不可能搞定了。還是得開(kāi)發(fā)人員上陣,按照美工給的模版,開(kāi)始添加Css:class、id、style……
10:完成上面的開(kāi)發(fā),基本頁(yè)面的開(kāi)發(fā)工作就完成了,最后的一個(gè)步驟就是把各個(gè)頁(yè)面有機(jī)的組織起來(lái),開(kāi)發(fā)應(yīng)用程序的整體應(yīng)用導(dǎo)航框架,通常就是菜單,然后把各個(gè)功能頁(yè)面跟菜單結(jié)合起來(lái),形成一個(gè)完整的應(yīng)用。
在這里我們省略了開(kāi)發(fā)期反復(fù)的調(diào)試過(guò)程,僅總結(jié)開(kāi)發(fā)的步驟。
四:選擇Web開(kāi)發(fā)框架的目的
了解了如果沒(méi)有框架,我們需要做的工作,這對(duì)選擇框架有非常大的幫助。
框架,直白點(diǎn)說(shuō),就是一個(gè)半成品,能夠幫我們做一些事情的半成品。
框架的選擇,就是看哪個(gè)框架最合適,從而減少開(kāi)發(fā)的工作量,提高開(kāi)發(fā)的效率和質(zhì)量,并有效減少維護(hù)的工作量,最終達(dá)到節(jié)約綜合開(kāi)發(fā)成本,獲取更多的收益。
五:選擇Web開(kāi)發(fā)框架的標(biāo)準(zhǔn)
聲明:這里所談的選擇Web開(kāi)發(fā)框架的標(biāo)準(zhǔn),只是我們的總結(jié)和一家之言,并不是放之四海而皆準(zhǔn)的真理,請(qǐng)根據(jù)您的體會(huì)客觀的看待我們的總結(jié)。
另外:我們這里更多的討論業(yè)務(wù)功能性應(yīng)用程序的Web開(kāi)發(fā)框架。
1:選擇能夠?qū)ξ覀兊拈_(kāi)發(fā)過(guò)程提供更多、更好幫助的Web開(kāi)發(fā)框架
2:Web開(kāi)發(fā)框架的學(xué)習(xí)一定要簡(jiǎn)單,上手一定要快,沒(méi)有什么比使用能得到更深的體會(huì)。那些動(dòng)不動(dòng)就需要半個(gè)月或者一個(gè)月學(xué)習(xí)周期的框架,實(shí)在是有些恐怖。
3:一定要能得到很好的技術(shù)支持,在應(yīng)用的過(guò)程中,或多或少都會(huì)出現(xiàn)這樣或者那樣的問(wèn)題,如果不能很快很好的解決,會(huì)對(duì)整個(gè)項(xiàng)目開(kāi)發(fā)帶來(lái)影響。一定要考慮綜合成本,其實(shí)這是目前應(yīng)用開(kāi)源軟件最大的問(wèn)題,碰到問(wèn)題除了死肯文檔就是查閱源代碼,或者是網(wǎng)上搜尋解決的辦法,通常一個(gè)問(wèn)題就會(huì)導(dǎo)致1-2天的開(kāi)發(fā)停頓,嚴(yán)重的甚至需要一個(gè)星期或者更長(zhǎng),一個(gè)項(xiàng)目有上這么幾次,項(xiàng)目整體的開(kāi)發(fā)成本嗖嗖的就上去了。
4:Web開(kāi)發(fā)框架結(jié)合其他技術(shù)的能力一定要強(qiáng),比如:在邏輯層要使用Spring或者Ejb3,那么Web開(kāi)發(fā)框架一定要能很容易,很方便的與它們進(jìn)行結(jié)合。
5:Web開(kāi)發(fā)框架的擴(kuò)展能力一定要強(qiáng)。在好的框架都有力所不及的地方,這就要求能很容易的擴(kuò)展Web開(kāi)發(fā)框架的功能,以滿(mǎn)足新的業(yè)務(wù)需要。同時(shí)要注意擴(kuò)展的簡(jiǎn)單性,如果擴(kuò)展框架的功能代價(jià)非常大,還不如不用呢。
6:Web開(kāi)發(fā)框架最好能提供可視化的開(kāi)發(fā)和配置,可視化開(kāi)發(fā)對(duì)開(kāi)發(fā)效率的提高,已經(jīng)得到業(yè)界公認(rèn)。
7:Web開(kāi)發(fā)框架的設(shè)計(jì)結(jié)構(gòu)一定要合理,應(yīng)用程序會(huì)基于這個(gè)框架,框架設(shè)計(jì)的不合理會(huì)大大影響到整個(gè)應(yīng)用的可擴(kuò)展性。
8:Web開(kāi)發(fā)框架一定要是運(yùn)行穩(wěn)定的,運(yùn)行效率高的。框架的穩(wěn)定性和運(yùn)行效率直接影響到整個(gè)系統(tǒng)的穩(wěn)定性和效率。
9:Web開(kāi)發(fā)框架一定要能很好的結(jié)合目前公司的積累。在多年的開(kāi)發(fā)中已有了很多積累,不能因?yàn)槭褂肳eb開(kāi)發(fā)框架就不能再使用了,那未免有些得不償失。
10:選擇開(kāi)發(fā)框架另外要注意的一點(diǎn)就是:任何開(kāi)發(fā)框架都不可能是十全十美的,也不可能是適應(yīng)所有的應(yīng)用場(chǎng)景的,也就是說(shuō)任何開(kāi)發(fā)框架都有它適用的范圍。所以選擇的時(shí)候要注意判斷應(yīng)用的場(chǎng)景和開(kāi)發(fā)框架的適用性。
相關(guān)案例查看更多
相關(guān)閱讀
- 云南衛(wèi)視小程序
- 軟件定制
- 報(bào)廢車(chē)拆解管理系統(tǒng)
- 網(wǎng)絡(luò)公司
- 報(bào)廢車(chē)管理
- 汽車(chē)回收管理系統(tǒng)
- 海報(bào)插件
- 網(wǎng)絡(luò)公司報(bào)價(jià)
- 服務(wù)器
- 網(wǎng)站排名
- 微信分銷(xiāo)系統(tǒng)
- 云南網(wǎng)站建設(shè)公司
- 搜索引擎自然排名
- 日歷組件
- 云南網(wǎng)站建設(shè)價(jià)格
- 江蘇小程序開(kāi)發(fā)
- 百度小程序開(kāi)發(fā)公司
- 云南軟件設(shè)計(jì)
- 小程序定制
- 網(wǎng)站建設(shè)電話
- 云南網(wǎng)站建設(shè)方案 doc
- 網(wǎng)站建設(shè)高手
- 迪慶小程序開(kāi)發(fā)
- APP
- uniapp開(kāi)發(fā)小程序
- 云南網(wǎng)絡(luò)推廣
- 昆明軟件定制公司
- 昆明做網(wǎng)站
- 云南網(wǎng)站建設(shè)特性
- 百度小程序開(kāi)發(fā)