您當前位置>首頁 » 新聞資(zī)訊 » 網站(zhàn)建設 >
如(rú)何選擇Web開發框架
發表時間:2006-6-9
發布人:葵宇科技
浏覽次數:40
如(rú)何選擇Web開發框架
開發框架的選擇,始終是個(gè)仁者見仁、智者見智的事情。尤其是Web層的開發框架,數量非常多,而且各有特色,如(rú):Struts、WebWork、Spring MVC、Tapestry、JSF、WebPage3.0……等等。
下(xià)面先來看看為什麼要使用Web開發框架
一:使用框架的必然性
框架,即framework。其實就是某種應用的半成品,把不同應用程序中(zhōng)有共性的一些東西抽取出來,做成一個(gè)半成品程序,這樣的半成品就是所謂的程序框架。
軟件系統發展到今天已經很複雜了,特别是服務器(qì)端軟件,涉及到的知識,内容,問(wèn)題太多。在某些方面使用别人成熟的框架,就相當于讓别人幫你(nǐ)完成一些基礎工作,你(nǐ)隻需要集中(zhōng)精力完成系統的業(yè)務邏輯設計。這樣每次開發就不用白手起家,而是可(kě)以在這個(gè)基礎上開始搭建。
使用框架的最大好處:減少(shǎo)重複開發工作量、縮短(duǎn)開發時間、降低開發成本。同時還有其它的好處,如(rú):使程序設計更合理、程序運行更穩定等。基于這些原因,基本上現在在開發中(zhōng),都會選用某些合适的開發框架,來幫助快速高效的開發應用系統。
了解了使用框架的必然性,下(xià)面來看看如(rú)何選擇,當然我們的話題集中(zhōng)在Web層的開發框架。在談這個(gè)問(wèn)題之前,先來看看我們在Web開發中(zhōng)究竟需要做些什麼工作:
二:Web層開發的工作
在J2EE開發中(zhōng),分層是基本的思想,3層架構或者多層架構早已深入人心,在這裡我們就把目光集中(zhōng)到Web層,看看到底Web層開發做了那些工作:
1:數據展示
Web層需要從邏輯層獲取需要展示的數據,然後以合理的方式在頁面進行展示
2:人機交互
用戶需要從界面上輸入數據,在界面上進行按鈕點擊,進而觸發事件,标準的事件驅動(dòng)模型,然後跟後台進行數據交換,出現新的界面。
3:收集數據,調用邏輯層接口
Web層收到用戶的事件請求,需要調用相應的邏輯層接口來進行處理,Web層是不會有任何邏輯處理的。調用邏輯層接口,需要傳遞參數,這時需要收集用戶在界面上輸入的數據,然後進行組織,組織成為邏輯層接口需要的數據封裝形式(通(tōng)常都是ValueObject)。
4:根據邏輯層的數據來重新展示頁面
邏輯層處理完了,需要返回數據或信息到界面上。這個(gè)時候Web層需要根據返回的值選擇合适的頁面,然後展示這些數據或者信息。
從上面可(kě)以看出,Web層開發的主要工作集中(zhōng)在展示上,也就是圖形用戶界面。這一部分是用戶直觀感受應用程序的窗口,也是用戶要求最多的地方,其表現形式也是最豐富的。
三:Web層開發的步驟
寫得手好累啊:) 給點支持,闆磚也行啊,如(rú)果沒人頂就不往下(xià)寫了,呵呵
開個(gè)玩笑,主要是昨天還沒有寫完,後續的
三:Web層開發的步驟
下(xià)面再來總結一下(xià)Web層開發的大緻步驟(也就是需要開發人員做的工作):
注意:這裡讨論的Web層開發,是不使用任何開發框架時候的開發。
1:寫頁面Html,到底有哪些數據需要在界面上表現
2:每個(gè)數據的具體表現形式,如(rú):有的需要表現成為下(xià)拉列表,有的需要表現成為單選按鈕等。
3:界面表現形式的邏輯布局,所謂邏輯布局是指某些數據的表現形式應該放在前面,某些應該放在後面;某些放在上面,某些放在下(xià)面。如(rú):某個(gè)請假申請的業(yè)務,有請假開始時間和(hé)結束時間,很明顯開始時間的表現就應該排在結束時間的前面。而美工是負責最後頁面的美觀,一般美工不能動(dòng)界面的邏輯布局。
4:完成前面3步,頁面的表現形式的大緻模樣就有了,下(xià)面需要來做功能性的開發。第一個(gè)就是這些表現形式的值的來源,如(rú):下(xià)拉列表顯示的值從什麼地方來。值的來源方式很多,有數據庫中(zhōng)來、固定值、某斷程序運行的中(zhōng)間結果、前面頁面傳遞過來等等,當然典型的還是來自數據庫。
好了,确定了值的來源,開發人員就要寫代碼來獲取這些值,然後把這些值賦值到對應的表現形式裡面。
5:還有一些比較特殊,也就是真實操作的是一類值,但是在界面上顯示的是另一類值,比如(rú):數據庫中(zhōng)有用戶編号,到了界面上就得顯示用戶姓名,但是所有的操作都是要操作用戶編号的。我們把這種情況分做:真實值和(hé)表現值,他們有一定的内在聯系。這些都是要開發人員去轉化和(hé)維護的。
6:接下(xià)來就應該開發功能性的事件響應了。用戶點擊了某個(gè)按鈕或者觸發了某個(gè)事件,首先是客戶端:數據檢測、客戶端事件處理;然後提交到服務端,服務端要獲取到客戶端提交的數據,然後調用相應的邏輯層接口來響應。當然如(rú)何寫邏輯層的實現這裡就不去談論了。
7:邏輯層執行完過後,返回數據和(hé)信息到Web層,開發人員還需要寫代碼去處理,選擇哪個(gè)頁面來顯示,如(rú)何顯示這些數據和(hé)信息等。
8:在整個(gè)交互的過程中(zhōng),還必須考慮到如(rú)何控制權限,如(rú):某些數據不能顯示,某些數據不能編輯等等;同樣還需要考慮到消息的配置和(hé)國際化等等。這些功能起源于邏輯層,但是實際的控制要到Web層,這些都需要開發人員來控制。
9:完成了上面的開發步驟,頁面基本的功能開發就告一段落,接下(xià)來開發人員需要考慮頁面美觀的問(wèn)題了。大家可(kě)能會說:“不是有美工嗎,還需要開發人員幹什麼?”。事實上美工多半隻能出一個(gè)靜态頁面的美化模版,美工對于一推Java代碼和(hé)Html的混雜物,多半是沒有辦法的,更不要說還有一些内容是動(dòng)态生成的,美工就更不可(kě)能搞定了。還是得開發人員上陣,按照美工給的模版,開始添加Css:class、id、style……
10:完成上面的開發,基本頁面的開發工作就完成了,最後的一個(gè)步驟就是把各個(gè)頁面有機的組織起來,開發應用程序的整體應用導航框架,通(tōng)常就是菜單,然後把各個(gè)功能頁面跟菜單結合起來,形成一個(gè)完整的應用。
在這裡我們省略了開發期反複的調試過程,僅總結開發的步驟。
四:選擇Web開發框架的目的
了解了如(rú)果沒有框架,我們需要做的工作,這對選擇框架有非常大的幫助。
框架,直白點說,就是一個(gè)半成品,能夠幫我們做一些事情的半成品。
框架的選擇,就是看哪個(gè)框架最合适,從而減少(shǎo)開發的工作量,提高開發的效率和(hé)質量,并有效減少(shǎo)維護的工作量,最終達到節約綜合開發成本,獲取更多的收益。
五:選擇Web開發框架的标準
聲明:這裡所談的選擇Web開發框架的标準,隻是我們的總結和(hé)一家之言,并不是放之四海而皆準的真理,請根據您的體會客觀的看待我們的總結。
另外:我們這裡更多的讨論業(yè)務功能性應用程序的Web開發框架。
1:選擇能夠對我們的開發過程提供更多、更好幫助的Web開發框架
2:Web開發框架的學習一定要簡單,上手一定要快,沒有什麼比使用能得到更深的體會。那些動(dòng)不動(dòng)就需要半個(gè)月(yuè)或者一個(gè)月(yuè)學習周期的框架,實在是有些恐怖。
3:一定要能得到很好的技術(shù)支持,在應用的過程中(zhōng),或多或少(shǎo)都會出現這樣或者那樣的問(wèn)題,如(rú)果不能很快很好的解決,會對整個(gè)項目開發帶來影響。一定要考慮綜合成本,其實這是目前應用開源軟件最大的問(wèn)題,碰到問(wèn)題除了死肯文(wén)檔就是查閱源代碼,或者是網上搜尋解決的辦法,通(tōng)常一個(gè)問(wèn)題就會導緻1-2天的開發停頓,嚴重的甚至需要一個(gè)星期或者更長,一個(gè)項目有上這麼幾次,項目整體的開發成本嗖嗖的就上去了。
4:Web開發框架結合其他技術(shù)的能力一定要強,比如(rú):在邏輯層要使用Spring或者Ejb3,那麼Web開發框架一定要能很容易,很方便的與它們進行結合。
5:Web開發框架的擴展能力一定要強。在好的框架都有力所不及的地方,這就要求能很容易的擴展Web開發框架的功能,以滿足新的業(yè)務需要。同時要注意擴展的簡單性,如(rú)果擴展框架的功能代價非常大,還不如(rú)不用呢(ne)。
6:Web開發框架最好能提供可(kě)視化的開發和(hé)配置,可(kě)視化開發對開發效率的提高,已經得到業(yè)界公認。
7:Web開發框架的設計結構一定要合理,應用程序會基于這個(gè)框架,框架設計的不合理會大大影響到整個(gè)應用的可(kě)擴展性。
8:Web開發框架一定要是運行穩定的,運行效率高的。框架的穩定性和(hé)運行效率直接影響到整個(gè)系統的穩定性和(hé)效率。
9:Web開發框架一定要能很好的結合目前公司的積累。在多年的開發中(zhōng)已有了很多積累,不能因為使用Web開發框架就不能再使用了,那未免有些得不償失。
10:選擇開發框架另外要注意的一點就是:任何開發框架都不可(kě)能是十全十美的,也不可(kě)能是适應所有的應用場景的,也就是說任何開發框架都有它适用的範圍。所以選擇的時候要注意判斷應用的場景和(hé)開發框架的适用性。
開發框架的選擇,始終是個(gè)仁者見仁、智者見智的事情。尤其是Web層的開發框架,數量非常多,而且各有特色,如(rú):Struts、WebWork、Spring MVC、Tapestry、JSF、WebPage3.0……等等。
下(xià)面先來看看為什麼要使用Web開發框架
一:使用框架的必然性
框架,即framework。其實就是某種應用的半成品,把不同應用程序中(zhōng)有共性的一些東西抽取出來,做成一個(gè)半成品程序,這樣的半成品就是所謂的程序框架。
軟件系統發展到今天已經很複雜了,特别是服務器(qì)端軟件,涉及到的知識,内容,問(wèn)題太多。在某些方面使用别人成熟的框架,就相當于讓别人幫你(nǐ)完成一些基礎工作,你(nǐ)隻需要集中(zhōng)精力完成系統的業(yè)務邏輯設計。這樣每次開發就不用白手起家,而是可(kě)以在這個(gè)基礎上開始搭建。
使用框架的最大好處:減少(shǎo)重複開發工作量、縮短(duǎn)開發時間、降低開發成本。同時還有其它的好處,如(rú):使程序設計更合理、程序運行更穩定等。基于這些原因,基本上現在在開發中(zhōng),都會選用某些合适的開發框架,來幫助快速高效的開發應用系統。
了解了使用框架的必然性,下(xià)面來看看如(rú)何選擇,當然我們的話題集中(zhōng)在Web層的開發框架。在談這個(gè)問(wèn)題之前,先來看看我們在Web開發中(zhōng)究竟需要做些什麼工作:
二:Web層開發的工作
在J2EE開發中(zhōng),分層是基本的思想,3層架構或者多層架構早已深入人心,在這裡我們就把目光集中(zhōng)到Web層,看看到底Web層開發做了那些工作:
1:數據展示
Web層需要從邏輯層獲取需要展示的數據,然後以合理的方式在頁面進行展示
2:人機交互
用戶需要從界面上輸入數據,在界面上進行按鈕點擊,進而觸發事件,标準的事件驅動(dòng)模型,然後跟後台進行數據交換,出現新的界面。
3:收集數據,調用邏輯層接口
Web層收到用戶的事件請求,需要調用相應的邏輯層接口來進行處理,Web層是不會有任何邏輯處理的。調用邏輯層接口,需要傳遞參數,這時需要收集用戶在界面上輸入的數據,然後進行組織,組織成為邏輯層接口需要的數據封裝形式(通(tōng)常都是ValueObject)。
4:根據邏輯層的數據來重新展示頁面
邏輯層處理完了,需要返回數據或信息到界面上。這個(gè)時候Web層需要根據返回的值選擇合适的頁面,然後展示這些數據或者信息。
從上面可(kě)以看出,Web層開發的主要工作集中(zhōng)在展示上,也就是圖形用戶界面。這一部分是用戶直觀感受應用程序的窗口,也是用戶要求最多的地方,其表現形式也是最豐富的。
三:Web層開發的步驟
寫得手好累啊:) 給點支持,闆磚也行啊,如(rú)果沒人頂就不往下(xià)寫了,呵呵
開個(gè)玩笑,主要是昨天還沒有寫完,後續的
三:Web層開發的步驟
下(xià)面再來總結一下(xià)Web層開發的大緻步驟(也就是需要開發人員做的工作):
注意:這裡讨論的Web層開發,是不使用任何開發框架時候的開發。
1:寫頁面Html,到底有哪些數據需要在界面上表現
2:每個(gè)數據的具體表現形式,如(rú):有的需要表現成為下(xià)拉列表,有的需要表現成為單選按鈕等。
3:界面表現形式的邏輯布局,所謂邏輯布局是指某些數據的表現形式應該放在前面,某些應該放在後面;某些放在上面,某些放在下(xià)面。如(rú):某個(gè)請假申請的業(yè)務,有請假開始時間和(hé)結束時間,很明顯開始時間的表現就應該排在結束時間的前面。而美工是負責最後頁面的美觀,一般美工不能動(dòng)界面的邏輯布局。
4:完成前面3步,頁面的表現形式的大緻模樣就有了,下(xià)面需要來做功能性的開發。第一個(gè)就是這些表現形式的值的來源,如(rú):下(xià)拉列表顯示的值從什麼地方來。值的來源方式很多,有數據庫中(zhōng)來、固定值、某斷程序運行的中(zhōng)間結果、前面頁面傳遞過來等等,當然典型的還是來自數據庫。
好了,确定了值的來源,開發人員就要寫代碼來獲取這些值,然後把這些值賦值到對應的表現形式裡面。
5:還有一些比較特殊,也就是真實操作的是一類值,但是在界面上顯示的是另一類值,比如(rú):數據庫中(zhōng)有用戶編号,到了界面上就得顯示用戶姓名,但是所有的操作都是要操作用戶編号的。我們把這種情況分做:真實值和(hé)表現值,他們有一定的内在聯系。這些都是要開發人員去轉化和(hé)維護的。
6:接下(xià)來就應該開發功能性的事件響應了。用戶點擊了某個(gè)按鈕或者觸發了某個(gè)事件,首先是客戶端:數據檢測、客戶端事件處理;然後提交到服務端,服務端要獲取到客戶端提交的數據,然後調用相應的邏輯層接口來響應。當然如(rú)何寫邏輯層的實現這裡就不去談論了。
7:邏輯層執行完過後,返回數據和(hé)信息到Web層,開發人員還需要寫代碼去處理,選擇哪個(gè)頁面來顯示,如(rú)何顯示這些數據和(hé)信息等。
8:在整個(gè)交互的過程中(zhōng),還必須考慮到如(rú)何控制權限,如(rú):某些數據不能顯示,某些數據不能編輯等等;同樣還需要考慮到消息的配置和(hé)國際化等等。這些功能起源于邏輯層,但是實際的控制要到Web層,這些都需要開發人員來控制。
9:完成了上面的開發步驟,頁面基本的功能開發就告一段落,接下(xià)來開發人員需要考慮頁面美觀的問(wèn)題了。大家可(kě)能會說:“不是有美工嗎,還需要開發人員幹什麼?”。事實上美工多半隻能出一個(gè)靜态頁面的美化模版,美工對于一推Java代碼和(hé)Html的混雜物,多半是沒有辦法的,更不要說還有一些内容是動(dòng)态生成的,美工就更不可(kě)能搞定了。還是得開發人員上陣,按照美工給的模版,開始添加Css:class、id、style……
10:完成上面的開發,基本頁面的開發工作就完成了,最後的一個(gè)步驟就是把各個(gè)頁面有機的組織起來,開發應用程序的整體應用導航框架,通(tōng)常就是菜單,然後把各個(gè)功能頁面跟菜單結合起來,形成一個(gè)完整的應用。
在這裡我們省略了開發期反複的調試過程,僅總結開發的步驟。
四:選擇Web開發框架的目的
了解了如(rú)果沒有框架,我們需要做的工作,這對選擇框架有非常大的幫助。
框架,直白點說,就是一個(gè)半成品,能夠幫我們做一些事情的半成品。
框架的選擇,就是看哪個(gè)框架最合适,從而減少(shǎo)開發的工作量,提高開發的效率和(hé)質量,并有效減少(shǎo)維護的工作量,最終達到節約綜合開發成本,獲取更多的收益。
五:選擇Web開發框架的标準
聲明:這裡所談的選擇Web開發框架的标準,隻是我們的總結和(hé)一家之言,并不是放之四海而皆準的真理,請根據您的體會客觀的看待我們的總結。
另外:我們這裡更多的讨論業(yè)務功能性應用程序的Web開發框架。
1:選擇能夠對我們的開發過程提供更多、更好幫助的Web開發框架
2:Web開發框架的學習一定要簡單,上手一定要快,沒有什麼比使用能得到更深的體會。那些動(dòng)不動(dòng)就需要半個(gè)月(yuè)或者一個(gè)月(yuè)學習周期的框架,實在是有些恐怖。
3:一定要能得到很好的技術(shù)支持,在應用的過程中(zhōng),或多或少(shǎo)都會出現這樣或者那樣的問(wèn)題,如(rú)果不能很快很好的解決,會對整個(gè)項目開發帶來影響。一定要考慮綜合成本,其實這是目前應用開源軟件最大的問(wèn)題,碰到問(wèn)題除了死肯文(wén)檔就是查閱源代碼,或者是網上搜尋解決的辦法,通(tōng)常一個(gè)問(wèn)題就會導緻1-2天的開發停頓,嚴重的甚至需要一個(gè)星期或者更長,一個(gè)項目有上這麼幾次,項目整體的開發成本嗖嗖的就上去了。
4:Web開發框架結合其他技術(shù)的能力一定要強,比如(rú):在邏輯層要使用Spring或者Ejb3,那麼Web開發框架一定要能很容易,很方便的與它們進行結合。
5:Web開發框架的擴展能力一定要強。在好的框架都有力所不及的地方,這就要求能很容易的擴展Web開發框架的功能,以滿足新的業(yè)務需要。同時要注意擴展的簡單性,如(rú)果擴展框架的功能代價非常大,還不如(rú)不用呢(ne)。
6:Web開發框架最好能提供可(kě)視化的開發和(hé)配置,可(kě)視化開發對開發效率的提高,已經得到業(yè)界公認。
7:Web開發框架的設計結構一定要合理,應用程序會基于這個(gè)框架,框架設計的不合理會大大影響到整個(gè)應用的可(kě)擴展性。
8:Web開發框架一定要是運行穩定的,運行效率高的。框架的穩定性和(hé)運行效率直接影響到整個(gè)系統的穩定性和(hé)效率。
9:Web開發框架一定要能很好的結合目前公司的積累。在多年的開發中(zhōng)已有了很多積累,不能因為使用Web開發框架就不能再使用了,那未免有些得不償失。
10:選擇開發框架另外要注意的一點就是:任何開發框架都不可(kě)能是十全十美的,也不可(kě)能是适應所有的應用場景的,也就是說任何開發框架都有它适用的範圍。所以選擇的時候要注意判斷應用的場景和(hé)開發框架的适用性。