Java Web开发构想(1) -- 1.背景、形势 2.Web开发框架层次概述 - 新闻资讯 - 云南小程序开发|云南软件开发|云南网站建设-昆明葵宇信息科技有限公司

159-8711-8523

云南网建设/小程序开发/软件开发

知识

不管是网站,软件还是小程序,都要直接或间接能为您产生价值,我们在追求其视觉表现的同时,更侧重于功能的便捷,营销的便利,运营的高效,让网站成为营销工具,让软件能切实提升企业内部管理水平和效率。优秀的程序为后期升级提供便捷的支持!

您当前位置>首页 » 新闻资讯 » 网站建设 >

Java Web开发构想(1) -- 1.背景、形势 2.Web开发框架层次概述

发表时间:2005-5-30

发布人:葵宇科技

浏览次数:48

Java Web开发构想

1.背景、形势

能够进行Web开发的编程语言和技术很多

(1) 动态解释语言

PHP; Perl; Python (Zope, Plone); Ruby (Ruby style="MARGIN: 0in 0in 0pt">(2) 编译语言

Java; .net

Java Web开发远非一枝独秀:

除了受到来自.net 这个重量级对手的最大挑战之外,更受到Zope, Ruby style="FONT-FAMILY: 宋体; mso-ascii-font-family: "Times New Roman"; mso-hansi-font-family: "Times New Roman"">等新式轻骑兵的冲击(当然,也继续受到老式轻步兵PHP, Perl的冲击)。

官方Java走的是复杂路线,Servlet -> JSP -> Taglib.net走的也是复杂路线,依靠成熟友好的集成化开发环境取胜。Java阵营好容易应对过来,从纷纭复杂的各种开发框架基础上,发展出了重量级Web开发框架JSF,以及相应的集成化开发环境;渴望以此应对.net的攻势。胜负未分,前途未卜。这时,另一个方向又杀来了新式轻骑Zope, Ruby style="FONT-FAMILY: 宋体; mso-ascii-font-family: "Times New Roman"; mso-hansi-font-family: "Times New Roman"">。

Python, Ruby等动态解释语言,面向对象特性更好,先天支持 动态绑定、AOP、函数式编程、“编程即配置”等时髦概念。开发速度更快,代码量更小,达到killer级别。

传统的HTML Web开发领域里面,Java已经是腹背受敌。领域外也展开了征战,Rich Client Architecture的兴起:AJAX(XMLHttp), Flash RIA, XUL, XAML, Smart Client(以及从前的ActiveX, Applet, Web Start)。

Web的发展趋势是 语义Web,最终目的是让整个Web成为一个巨大的数据库。

这意味着,未来的Web应用将更加的面向文本内容数据,更加搜索引擎友好 – Search Engine Friendly.

二进制的客户端插件,如Flash RIA, ActiveX, Applet, Web Start等,虽然交互性能最好,但不是以文本内容数据为中心,搜索引擎不友好。所以,我只是保持适当关注。我更关注基于文本的UI表现,如HTML, XUL, XAML等。XUL, XAML还没有广泛流行,只是保持一种有兴趣的关注。

当下关注的重点,还是 XHTML + CSS + Javascript少量的 AJAX(XMLHttp)增加更好的交互性。

我一直认为:轻量、简洁、高效 才是硬道理。后面阐述我对Java Web开发的理解和构想。

2. Web开发框架层次概述

从上到下,Web开发框架的层次如下:

(1) HTML, JavaScript, CSS等页面资源。

(2) 页面模板层。

JSP, Freemarker, Velocity, XSLfastm等。用来生成HTML, JavaScript, CSS等页面资源。

(3) Web框架。把HTTP Request调度分派到对应的Service Entry

(4) Business Logic.

(5) O/R Mapping.

(6) JDBC

(7) DB

根据我的经验,一个典型的Web应用中的代码比例如下:

页面逻辑约占 50%,商业逻辑约占30%, O/R 约占20%

但事实上,页面却是最不受重视的部分,从来都被认为是脏活,累活,杂活。典型的开发过程通常是这样:

页面设计人员迅速的用Dreamweaver等生成一堆文本杂乱无章的页面,然后交给JSP程序员加入更加杂乱无章的Java代码和Taglib

当页面布局风格需要改变的时候,页面设计人员用Dreamweaver等生成一堆新的页面。JSP程序员再重新加入更加杂乱无章的Java代码Taglib

至于页面中的脚本逻辑调试,更是一门精深的工夫了。

根据社会规则,通常来说,工作内容越轻松,收入越高;工作内容越脏月累,收入越低;Web开发也是如此:做着最脏最累的活的页面程序员,工资一般比不上后台业务逻辑程序员。

开发框架通常会带来这样的结果:让简单的东西,变得更简单;让复杂的东西,变得更复杂。

这其中的原因在于:

一般来说,一个应用中简单重复的东西占80%,复杂特殊的东西占20%

简单重复的东西很容易摸清规律,进行包装,通用化。但是,在包装的同时,经常就阻挡住了底层的一些灵活强大的控制能力。在复杂特殊的需求中,确实又需要这些底层控制能力,那么为了绕开框架的限制,付出的努力要比不用框架 大得多。

打个比方,一个比较极端的例子。编译语言比汇编语言的开发效率高很多,但是却无法直接操作寄存器。当需要在编译语言中操作寄存器的时候,就非常的痛苦。比如Java,也许需要JNI,写C代码,还要在C代码里面嵌入汇编。编译、连接都很麻烦。

所以,一个框架的开发效率,就在于这个80%简单 20%复杂之间的平衡。

假如,不用框架来开发,简单的80%要消耗 80个资源数,复杂的20%要消耗20个资源数,总资源数是100;使用了某个框架,简单的80%只要消耗10个资源数,复杂的20%要消耗40个资源数,总资源数是50。那么,我们说,这个开发框架是有效率的。

我的思路是,同时应对复杂和简单。当然,为了应对复杂,简单的东西可能就应对得不那么好。比如,做这样一个开发框架,简单的80%要消耗20个资源数,复杂的20%要消耗10个资源数,总资源数是30

这种开发框架是有可能实现的。而且是很有意义的。尤其是在复杂部分的比例提高的时候。越复杂的系统,这种开发框架就越有意义。

后面的关于Web各层开发的论述,主要就按照这个“应对复杂、让复杂更简单”的思路展开。

相关案例查看更多