知識
不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價值,我們在追求其視覺表現(xiàn)的同時,更側(cè)重于功能的便捷,營銷的便利,運(yùn)營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實(shí)提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序?yàn)楹笃谏壧峁┍憬莸闹С郑?
您當(dāng)前位置>首頁 » 新聞資訊 » 網(wǎng)站建設(shè) >
Java Web開發(fā)構(gòu)想(1) -- 1.背景、形勢 2.Web開發(fā)框架層次概述
發(fā)表時間:2005-5-30
發(fā)布人:葵宇科技
瀏覽次數(shù):63
Java Web開發(fā)構(gòu)想
1.背景、形勢
能夠進(jìn)行Web開發(fā)的編程語言和技術(shù)很多
(1) 動態(tài)解釋語言
PHP; Perl; Python (Zope, Plone); Ruby (Ruby style="MARGIN: 0in 0in 0pt">(2) 編譯語言
Java; .net
Java Web開發(fā)遠(yuǎn)非一枝獨(dú)秀:
除了受到來自.net 這個重量級對手的最大挑戰(zhàn)之外,更受到Zope, Ruby style="FONT-FAMILY: 宋體; mso-ascii-font-family: "Times New Roman"; mso-hansi-font-family: "Times New Roman"">等新式輕騎兵的沖擊(當(dāng)然,也繼續(xù)受到老式輕步兵PHP, Perl的沖擊)。
官方Java走的是復(fù)雜路線,Servlet -> JSP -> Taglib。.net走的也是復(fù)雜路線,依靠成熟友好的集成化開發(fā)環(huán)境取勝。Java陣營好容易應(yīng)對過來,從紛紜復(fù)雜的各種開發(fā)框架基礎(chǔ)上,發(fā)展出了重量級Web開發(fā)框架JSF,以及相應(yīng)的集成化開發(fā)環(huán)境;渴望以此應(yīng)對.net的攻勢。勝負(fù)未分,前途未卜。這時,另一個方向又殺來了新式輕騎Zope, Ruby style="FONT-FAMILY: 宋體; mso-ascii-font-family: "Times New Roman"; mso-hansi-font-family: "Times New Roman"">。
Python, Ruby等動態(tài)解釋語言,面向?qū)ο筇匦愿?#xff0c;先天支持 動態(tài)綁定、AOP、函數(shù)式編程、“編程即配置”等時髦概念。開發(fā)速度更快,代碼量更小,達(dá)到killer級別。
傳統(tǒng)的HTML Web開發(fā)領(lǐng)域里面,Java已經(jīng)是腹背受敵。領(lǐng)域外也展開了征戰(zhàn),Rich Client Architecture的興起:AJAX(XMLHttp), Flash RIA, XUL, XAML, Smart Client(以及從前的ActiveX, Applet, Web Start)。
Web的發(fā)展趨勢是 語義Web,最終目的是讓整個Web成為一個巨大的數(shù)據(jù)庫。
這意味著,未來的Web應(yīng)用將更加的面向文本內(nèi)容數(shù)據(jù),更加搜索引擎友好 – Search Engine Friendly.
二進(jìn)制的客戶端插件,如Flash RIA, ActiveX, Applet, Web Start等,雖然交互性能最好,但不是以文本內(nèi)容數(shù)據(jù)為中心,搜索引擎不友好。所以,我只是保持適當(dāng)關(guān)注。我更關(guān)注基于文本的UI表現(xiàn),如HTML, XUL, XAML等。XUL, XAML還沒有廣泛流行,只是保持一種有興趣的關(guān)注。
當(dāng)下關(guān)注的重點(diǎn),還是 XHTML + CSS + Javascript少量的 AJAX(XMLHttp)增加更好的交互性。
我一直認(rèn)為:輕量、簡潔、高效 才是硬道理。后面闡述我對Java Web開發(fā)的理解和構(gòu)想。
2. Web開發(fā)框架層次概述
從上到下,Web開發(fā)框架的層次如下:
(1) HTML, JavaScript, CSS等頁面資源。
(2) 頁面模板層。
如JSP, Freemarker, Velocity, XSL,fastm等。用來生成HTML, JavaScript, CSS等頁面資源。
(3) Web框架。把HTTP Request調(diào)度分派到對應(yīng)的Service Entry。
(4) Business Logic.
(5) O/R Mapping.
(6) JDBC
(7) DB
根據(jù)我的經(jīng)驗(yàn),一個典型的Web應(yīng)用中的代碼比例如下:
頁面邏輯約占 50%,商業(yè)邏輯約占30%, O/R 約占20%。
但事實(shí)上,頁面卻是最不受重視的部分,從來都被認(rèn)為是臟活,累活,雜活。典型的開發(fā)過程通常是這樣:
頁面設(shè)計(jì)人員迅速的用Dreamweaver等生成一堆文本雜亂無章的頁面,然后交給JSP程序員加入更加雜亂無章的Java代碼和Taglib。
當(dāng)頁面布局風(fēng)格需要改變的時候,頁面設(shè)計(jì)人員用Dreamweaver等生成一堆新的頁面。JSP程序員再重新加入更加雜亂無章的Java代碼Taglib。
至于頁面中的腳本邏輯調(diào)試,更是一門精深的工夫了。
根據(jù)社會規(guī)則,通常來說,工作內(nèi)容越輕松,收入越高;工作內(nèi)容越臟月累,收入越低;Web開發(fā)也是如此:做著最臟最累的活的頁面程序員,工資一般比不上后臺業(yè)務(wù)邏輯程序員。
開發(fā)框架通常會帶來這樣的結(jié)果:讓簡單的東西,變得更簡單;讓復(fù)雜的東西,變得更復(fù)雜。
這其中的原因在于:
一般來說,一個應(yīng)用中簡單重復(fù)的東西占80%,復(fù)雜特殊的東西占20%。
簡單重復(fù)的東西很容易摸清規(guī)律,進(jìn)行包裝,通用化。但是,在包裝的同時,經(jīng)常就阻擋住了底層的一些靈活強(qiáng)大的控制能力。在復(fù)雜特殊的需求中,確實(shí)又需要這些底層控制能力,那么為了繞開框架的限制,付出的努力要比不用框架 大得多。
打個比方,一個比較極端的例子。編譯語言比匯編語言的開發(fā)效率高很多,但是卻無法直接操作寄存器。當(dāng)需要在編譯語言中操作寄存器的時候,就非常的痛苦。比如Java,也許需要JNI,寫C代碼,還要在C代碼里面嵌入?yún)R編。編譯、連接都很麻煩。
所以,一個框架的開發(fā)效率,就在于這個80%簡單 與 20%復(fù)雜之間的平衡。
假如,不用框架來開發(fā),簡單的80%要消耗 80個資源數(shù),復(fù)雜的20%要消耗20個資源數(shù),總資源數(shù)是100;使用了某個框架,簡單的80%只要消耗10個資源數(shù),復(fù)雜的20%要消耗40個資源數(shù),總資源數(shù)是50。那么,我們說,這個開發(fā)框架是有效率的。
我的思路是,同時應(yīng)對復(fù)雜和簡單。當(dāng)然,為了應(yīng)對復(fù)雜,簡單的東西可能就應(yīng)對得不那么好。比如,做這樣一個開發(fā)框架,簡單的80%要消耗20個資源數(shù),復(fù)雜的20%要消耗10個資源數(shù),總資源數(shù)是30。
這種開發(fā)框架是有可能實(shí)現(xiàn)的。而且是很有意義的。尤其是在復(fù)雜部分的比例提高的時候。越復(fù)雜的系統(tǒng),這種開發(fā)框架就越有意義。
后面的關(guān)于Web各層開發(fā)的論述,主要就按照這個“應(yīng)對復(fù)雜、讓復(fù)雜更簡單”的思路展開。
相關(guān)案例查看更多
相關(guān)閱讀
- 百度小程序開發(fā)公司
- 云南etc微信小程序
- 網(wǎng)站建設(shè)服務(wù)公司
- 網(wǎng)站建設(shè)靠譜公司
- 昆明做網(wǎng)站
- 云南小程序開發(fā)制作公司
- 海南小程序制作公司
- 微信小程序開發(fā)入門課程
- 云南網(wǎng)絡(luò)營銷
- 高端網(wǎng)站建設(shè)公司
- asp網(wǎng)站
- 云南建站公司
- 網(wǎng)站建設(shè)百度官方
- 云南軟件定制公司
- 前端開發(fā)
- 云南網(wǎng)站建設(shè)首選
- 網(wǎng)站建設(shè)哪家強(qiáng)
- 網(wǎng)絡(luò)公司電話
- 小程序的開發(fā)公司
- 網(wǎng)頁制作
- 昆明小程序哪家好
- 云南省建設(shè)廳網(wǎng)站
- 分銷系統(tǒng)
- 報(bào)廢車拆解管理系統(tǒng)
- 百度小程序公司
- 百度小程序開發(fā)
- 小程序被騙
- 網(wǎng)站建設(shè)開發(fā)
- 云南電商網(wǎng)站建設(shè)
- web開發(fā)