Java Web開發構想(1) -- 1.背景、形勢 2.Web開發框架層次概述 - 新聞資訊 - 雲南小程序開發|雲南軟件開發|雲南網站建設-昆明融晨信息技術有限公司

159-8711-8523

雲南網建設/小程序開發/軟件開發

知識

不(bù)管是(shì)網站,軟件還是(shì)小程序,都要(yào / yāo)直接或間接能爲(wéi / wèi)您産生價值,我們在(zài)追求其視覺表現的(de)同時(shí),更側重于(yú)功能的(de)便捷,營銷的(de)便利,運營的(de)高效,讓網站成爲(wéi / wèi)營銷工具,讓軟件能切實提升企業内部管理水平和(hé / huò)效率。優秀的(de)程序爲(wéi / wèi)後期升級提供便捷的(de)支持!

您當前位置>首頁 » 新聞資訊 » 網站建設 >

Java Web開發構想(1) -- 1.背景、形勢 2.Web開發框架層次概述

發表時(shí)間:2005-5-30

發布人(rén):融晨科技

浏覽次數:63

Java Web開發構想

1.背景、形勢

能夠進行Web開發的(de)編程語言和(hé / huò)技術很多

(1) 動态解釋語言

PHP; Perl; Python (Zope, Plone); Ruby (Ruby style="MARGIN: 0in 0in 0pt">(2) 編譯語言

Java; .net

Java Web開發遠非一枝獨秀:

除了(le/liǎo)受到(dào)來(lái)自.net 這(zhè)個(gè)重量級對手的(de)最大(dà)挑戰之(zhī)外,更受到(dào)Zope, Ruby style="FONT-FAMILY: 宋體; mso-ascii-font-family: "Times New Roman"; mso-hansi-font-family: "Times New Roman"">等新式輕騎兵的(de)沖擊(當然,也(yě)繼續受到(dào)老式輕步兵PHP, Perl的(de)沖擊)。

官方Java走的(de)是(shì)複雜路線,Servlet -> JSP -> Taglib.net走的(de)也(yě)是(shì)複雜路線,依靠成熟友好的(de)集成化開發環境取勝。Java陣營好容易應對過來(lái),從紛纭複雜的(de)各種開發框架基礎上(shàng),發展出(chū)了(le/liǎo)重量級Web開發框架JSF,以(yǐ)及相應的(de)集成化開發環境;渴望以(yǐ)此應對.net的(de)攻勢。勝負未分,前途未蔔。這(zhè)時(shí),另一個(gè)方向又殺來(lái)了(le/liǎo)新式輕騎Zope, Ruby style="FONT-FAMILY: 宋體; mso-ascii-font-family: "Times New Roman"; mso-hansi-font-family: "Times New Roman"">。

Python, Ruby等動态解釋語言,面向對象特性更好,先天支持 動态綁定、AOP、函數式編程、“編程即配置”等時(shí)髦概念。開發速度更快,代碼量更小,達到(dào)killer級别。

傳統的(de)HTML Web開發領域裏面,Java已經是(shì)腹背受敵。領域外也(yě)展開了(le/liǎo)征戰,Rich Client Architecture的(de)興起:AJAX(XMLHttp), Flash RIA, XUL, XAML, Smart Client(以(yǐ)及從前的(de)ActiveX, Applet, Web Start)。

Web的(de)發展趨勢是(shì) 語義Web,最終目的(de)是(shì)讓整個(gè)Web成爲(wéi / wèi)一個(gè)巨大(dà)的(de)數據庫。

這(zhè)意味着,未來(lái)的(de)Web應用将更加的(de)面向文本内容數據,更加搜索引擎友好 – Search Engine Friendly.

二進制的(de)客戶端插件,如Flash RIA, ActiveX, Applet, Web Start等,雖然交互性能最好,但不(bù)是(shì)以(yǐ)文本内容數據爲(wéi / wèi)中心,搜索引擎不(bù)友好。所以(yǐ),我隻是(shì)保持适當關注。我更關注基于(yú)文本的(de)UI表現,如HTML, XUL, XAML等。XUL, XAML還沒有廣泛流行,隻是(shì)保持一種有興趣的(de)關注。

當下關注的(de)重點,還是(shì) XHTML + CSS + Javascript少量的(de) AJAX(XMLHttp)增加更好的(de)交互性。

我一直認爲(wéi / wèi):輕量、簡潔、高效 才是(shì)硬道(dào)理。後面闡述我對Java Web開發的(de)理解和(hé / huò)構想。

2. Web開發框架層次概述

從上(shàng)到(dào)下,Web開發框架的(de)層次如下:

(1) HTML, JavaScript, CSS等頁面資源。

(2) 頁面模闆層。

JSP, Freemarker, Velocity, XSLfastm等。用來(lái)生成HTML, JavaScript, CSS等頁面資源。

(3) Web框架。把HTTP Request調度分派到(dào)對應的(de)Service Entry

(4) Business Logic.

(5) O/R Mapping.

(6) JDBC

(7) DB

根據我的(de)經驗,一個(gè)典型的(de)Web應用中的(de)代碼比例如下:

頁面邏輯約占 50%,商業邏輯約占30%, O/R 約占20%

但事實上(shàng),頁面卻是(shì)最不(bù)受重視的(de)部分,從來(lái)都被認爲(wéi / wèi)是(shì)髒活,累活,雜活。典型的(de)開發過程通常是(shì)這(zhè)樣:

頁面設計人(rén)員迅速的(de)用Dreamweaver等生成一堆文本雜亂無章的(de)頁面,然後交給JSP程序員加入更加雜亂無章的(de)Java代碼和(hé / huò)Taglib

當頁面布局風格需要(yào / yāo)改變的(de)時(shí)候,頁面設計人(rén)員用Dreamweaver等生成一堆新的(de)頁面。JSP程序員再重新加入更加雜亂無章的(de)Java代碼Taglib

至于(yú)頁面中的(de)腳本邏輯調試,更是(shì)一門精深的(de)工夫了(le/liǎo)。

根據社會規則,通常來(lái)說(shuō),工作内容越輕松,收入越高;工作内容越髒月累,收入越低;Web開發也(yě)是(shì)如此:做着最髒最累的(de)活的(de)頁面程序員,工資一般比不(bù)上(shàng)後台業務邏輯程序員。

開發框架通常會帶來(lái)這(zhè)樣的(de)結果:讓簡單的(de)東西,變得更簡單;讓複雜的(de)東西,變得更複雜。

這(zhè)其中的(de)原因在(zài)于(yú):

一般來(lái)說(shuō),一個(gè)應用中簡單重複的(de)東西占80%,複雜特殊的(de)東西占20%

簡單重複的(de)東西很容易摸清規律,進行包裝,通用化。但是(shì),在(zài)包裝的(de)同時(shí),經常就(jiù)阻擋住了(le/liǎo)底層的(de)一些靈活強大(dà)的(de)控制能力。在(zài)複雜特殊的(de)需求中,确實又需要(yào / yāo)這(zhè)些底層控制能力,那麽爲(wéi / wèi)了(le/liǎo)繞開框架的(de)限制,付出(chū)的(de)努力要(yào / yāo)比不(bù)用框架 大(dà)得多。

打個(gè)比方,一個(gè)比較極端的(de)例子(zǐ)。編譯語言比彙編語言的(de)開發效率高很多,但是(shì)卻無法直接操作寄存器。當需要(yào / yāo)在(zài)編譯語言中操作寄存器的(de)時(shí)候,就(jiù)非常的(de)痛苦。比如Java,也(yě)許需要(yào / yāo)JNI,寫C代碼,還要(yào / yāo)在(zài)C代碼裏面嵌入彙編。編譯、連接都很麻煩。

所以(yǐ),一個(gè)框架的(de)開發效率,就(jiù)在(zài)于(yú)這(zhè)個(gè)80%簡單 20%複雜之(zhī)間的(de)平衡。

假如,不(bù)用框架來(lái)開發,簡單的(de)80%要(yào / yāo)消耗 80個(gè)資源數,複雜的(de)20%要(yào / yāo)消耗20個(gè)資源數,總資源數是(shì)100;使用了(le/liǎo)某個(gè)框架,簡單的(de)80%隻要(yào / yāo)消耗10個(gè)資源數,複雜的(de)20%要(yào / yāo)消耗40個(gè)資源數,總資源數是(shì)50。那麽,我們說(shuō),這(zhè)個(gè)開發框架是(shì)有效率的(de)。

我的(de)思路是(shì),同時(shí)應對複雜和(hé / huò)簡單。當然,爲(wéi / wèi)了(le/liǎo)應對複雜,簡單的(de)東西可能就(jiù)應對得不(bù)那麽好。比如,做這(zhè)樣一個(gè)開發框架,簡單的(de)80%要(yào / yāo)消耗20個(gè)資源數,複雜的(de)20%要(yào / yāo)消耗10個(gè)資源數,總資源數是(shì)30

這(zhè)種開發框架是(shì)有可能實現的(de)。而(ér)且是(shì)很有意義的(de)。尤其是(shì)在(zài)複雜部分的(de)比例提高的(de)時(shí)候。越複雜的(de)系統,這(zhè)種開發框架就(jiù)越有意義。

後面的(de)關于(yú)Web各層開發的(de)論述,主要(yào / yāo)就(jiù)按照這(zhè)個(gè)“應對複雜、讓複雜更簡單”的(de)思路展開。

相關案例查看更多