`
Julien
  • 浏览: 17225 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

基于JAVA的WEB应用开发,还可以简化到什么程度

阅读更多
注意是WEB应用不是企业应用。所以敏捷重要,逻辑分层不重要。
这其实就是ROR的方向。
在这个方向上,WEBWORK不是终点,HIBERNATE也不是终点。
而且,绝对不是因为“JAVA不是ROR,所以简化不到那个程度”
当然语言特性是没有办法了,好歹我牺牲了语言便利性,但是我赢得了IDE支持和工业强度的鲁棒性,也算聊胜于无。
之前有几轮讨论,争论到JAVA不能热部署。热部署重要么?TOMCAT都支持自动检测代码更新重部署了。
但是为什么WEB应用开发还是那么烦人?因为太多东西塞到web.xml里头去了。
HIBERNATE的映射,动不动就二三十秒,我改点东西就要二三十秒(如果是大东西能上一分钟)才能看到结果,如何敏捷的起来?WEBWORK也有映射配置,虽然载一遍没那么慢,但是……WEBWORK为何要搞映射?我在ACTION里面指定具体渲哪个VIEW难道会死?何必非要拉出来攒一个XML等着重启的时候读映射?
我觉得理想的JAVA架构,其WEB部分和ORM部分,都应该是无配置的。数据源你配一下,其它的就别管了。
应用跑的时候,随用随把相关的类抓出来实例化,用三个表就三个dao,用五个就建五个,或者你高兴每次直接把全部10个表的service都实例化一遍都无所谓,用不着可怜巴巴的配一个个bean小心翼翼的供到spring里头等着用到的时候拿出来,咱们还省那点儿内存那点CPU么?
这其实就是ROR的做法。我以为ROR出来之后JAVA世界会幡然醒悟,结果半年过去了,没多大变化,web.xml里头还是那么臃肿。
理想的这种WEB架构,在web.xml里面配一把controller所在的包路径,model所在的包路径,再加上数据源就足够了,然后放上一个servlet开跑,重启时间不会超过1秒,再也没有其它的xml或者properties需要搭理了,无论是开发还是测试都嗖嗖的。
这样下去,webwork可以推倒,用一个简单一万倍的servlet来替换,HIBERNATE很好,只是你得改成用到哪个MODEL的时候再用反射重装一遍元数据。至于SPRING,咱们可以白白了,你还是继续去服务J2EE这个很复杂很有前途的高级领域吧。
分享到:
评论
20 楼 giscat 2007-04-30  
技术不是问题,关键还是业务
19 楼 Julien 2007-04-30  
这个方案本质上没有降低复杂性啊,Hibernate还是Hibernate,MVC还是MVC。

我只是要求
1.在运行期而不是初始化时应用配置;
windows相比于linux,最糟糕的结构之一,就是注册表。

2.只有开发人员会改的东西完全可以配到代码里面去,xml里面只放使用人员管得到的东西就好。
JAVA社区有一个偏见,就是java代码神圣不可侵犯,所有对应于具体场景的东西,甚至于所有非算法的东西都应该做成配置放到代码之外来。
但是对应于某个具体应用来说,我系统必需要访问某个表,某个字段,这种要求不满足,系统都无法成立,那你把它放在xml配置里面有什么意思?使用人员根本就没有权力选择应该配成这样或者那样,你给他一个xml配配数据库连接就足够了。
18 楼 java_mid4 2007-04-30  
个人认为这个问题不是绝对的。
要根据你的应用的复杂程度去做取舍,选取一个平衡点。
开发中的很多方面综合起来很难面面俱到的。
17 楼 liuen258 2007-04-29  
ding
16 楼 bingbing 2007-04-29  
至少作为新手来说,我很喜欢lz的开发思想,运用起来比较舒服
15 楼 umbrella 2007-04-29  
所以要掌握好技术,自己能造轮子就不用再去学别人造出来的轮子,要不然世界变化这么快,今天一个明天一个,公司现在用这个明天用那个,什么时候才是尽头?你要学到什么时候?你烦不烦???你要成为机器,我没办法。
14 楼 qqeerr20012001 2007-04-29  
也许国外的大牛们吃饱了撑的,没事都发明个MVC来玩,今天struts,明天webwork2,Sprign mvc,可为什么会这样,当然是各人都有各人关注点,关注点不同,便不断地重复造轮子
13 楼 dyok 2007-04-29  
这个问题有点意思,大家讨论得也不错,关注ing`!
12 楼 umbrella 2007-04-29  
搞笑,搞开发jsp+servlet怎么可能比MVC+ORM更快?

呵呵,为什么不能更快呢?我们有自己用JSP+SERVLET实现的框架,干什么一定要用别人的,我们写适合我们项目的框架,做起项目来比你们用那些开源框架速度更快,效率更高,像那些开源框架东西一大堆,放在那里不用浪费资源又耗时间了,开源框架里的东西你们用到了哪些?如果是我们自己的框架,我们有主动权控制权,什么东西该要什么东西不要都可以根据我们项目情况来决定。写一个能运行的MVC框架要多久?比你去学那些开源框架花的时间更少,一个MAP,一个接口,一个SERVLET就搞定一切了。你还别说,这都是最基本的,你看见哪个框架不是基于SERVLET,JSP的?如果你不能用这些基本的东西写出一个类似你所用的框架的东西,那你把那框架用的再熟也只是局限于那个框架,能把那些东西看透,根本就不屑去使用那些东西。因为不定因素太多了,你要的是完全在自己手掌上的东西。

以上纯属无聊之谈!
11 楼 LucasLee 2007-04-29  
说得不错.
为了获得扩展性,伸缩性都是要额外付出代价的,不过一开始也不容易估计将来的负载量.
业界的趋势被大公司推动了,国内很容易被鼓动的.
10 楼 yananay 2007-04-29  
引用

HIBERNATE的映射,动不动就二三十秒,我改点东西就要二三十秒(如果是大东西能上一分钟)才能看到结果,如何敏捷的起来?


敏捷不等于快速
9 楼 downpour 2007-04-29  
很奇怪,谁让你Web开发用Java了?国外多数的web应用都是php写的。谁让你用Java开发的时候用webwork和hibernate了?这帖子完全是夺人眼球嘛。

Java在Web开发上的速度是没有办法和.Net相比的,这个是不争的事实。但是要比起扩展性来说,良好的分层与框架的使用会给我们带来很大的便利。现在的问题就在于,是不是一旦用了Java,就必须上Webwork,Hibernate?这个实际上还是要根据实际情况来,任何技术只要用的好,用的熟练,都是好技术。
8 楼 znjq 2007-04-29  
改xml和改java代码,哪个更简单?
action中指定view,有点java中写jdbc的味道...
分层是为了架构的清晰,更易维护,但是并不是说过度分层。
简化不能一概而论,针对不同项目不同的对策。
7 楼 hocus 2007-04-29  
逻辑不分层不是ROR的方向。

如果你是给一个义乌的五金作坊做具有在线下单的"公司"网站,那么你用hibernate,webworks就是自找麻烦;如果你们给ISP做业务支撑,想用用ROR 配个表就crud,那就是你们公司和isp共同的悲哀.
开源架构便利了开发,也影响了开发,但不能代表java web开发
J2EE 是复杂,但要量体裁衣
lz那么有想法,可以寻思着去JCP 做个委员
6 楼 leebai 2007-04-29  
楼主这个问题,很好。

WEB应用,甚至企业应用,能简化到什么程度呢?

我看IBM的答案最精辟:“按需计算”,需要到什么程度,就到什么程度。

这就好比穿衣服,穿衣服能简化到什么程度呢?
非特别正式的场合,领带是可以简化的;天气暖,外套也是可以简化的;天气太热,简化得剩条裤衩也是可以的(女生再多点);要是洗澡,就什么都不用穿了。

现在的Java社区的主流是:西装革履的习惯了,连洗澡时都要系个领带,还有理:万一我洗着洗着来客户了怎么办,还得留点“可重用性”,“可维护性”,“灵活性”吧?


5 楼 Julien 2007-04-29  
搞笑,搞开发jsp+servlet怎么可能比MVC+ORM更快?
4 楼 giscat 2007-04-29  
java的开发效率也可以很飞快,
甚至比ROR更快,
  看怎么去处理了
3 楼 slaser 2007-04-29  
Spring可以白白,但是你得再找个Ioc容器替代。如果是简单的jsp+servlet搞定的页面,不如用php.
2 楼 maxima 2007-04-29  
看了半天lz是说用jsp+servlet么,这种可能只适应复杂度低,只要1,2个人就能完成的,无长期维护的小web工程吧.
实际的情况是web需要高并发,安全性,可维护,可扩展,分模块开发的.
1 楼 i_love_sc 2007-04-29  
有点意思。
那还不如直接用ror开发呢 。

相关推荐

    基于JADE实现Java Web应用系统的智能化改进.pdf

    本文提出的基于JADE实现Java Web应用系统的智能化改进方法可以提高系统的智能化程度,同时也能够减少开发时间和成本,对企业遗留的基于Java EE平台的应用系统进行智能化改进具有重要的现实意义。 知识点: 1. JADE...

    Java web应用开发教学大纲及模拟题

    Java Web应用开发是IT行业中一个重要的领域,它涵盖了构建基于Web的应用程序的技术和框架,包括Servlet、JSP、JavaBean、MVC模式以及各种Web框架如Spring MVC、Struts等。本教学大纲和模拟题旨在帮助学习者深入理解...

    基于Java的Web开发技术实验大纲

    本实验大纲旨在让学生掌握基于Java的Web开发技术,包括Java集合框架、JDBC数据库编程、JSP语法、Servlet技术、JavaBean、EL表达式语言、JSTL标签库、MVC设计模式、XML操作、Ajax工作原理、jQuery基本操作以及Web服务...

    零基础学Java Web开发

    在Java Web开发中,Web应用程序的运行原理是基于浏览器/服务器(B/S)结构的,与传统的客户端/服务器(C/S)结构不同,B/S结构中客户端只需要一个标准的浏览器,用户通过浏览器访问服务器端的应用程序,而服务器端负责...

    java web 开发实例

    Java Web开发是一个广泛的领域,它涵盖了使用Java技术栈构建基于Web的应用程序的过程。...通过跟随这个实例,你可以掌握Servlet、JSP、MyEclipse和MySQL的综合运用,为后续更复杂的Web应用开发打下坚实的基础。

    Java Web应用客户端编程

    Java Web应用客户端编程是开发基于Web的交互式应用程序的关键领域,它涵盖了用户界面设计、数据交换和处理等方面。在这个主题中,我们将深入探讨以下几个关键知识点: 1. **HTML与JavaScript**:HTML(超文本标记...

    Java web 调查问卷

    12. **Spring框架**:Spring是另一个广泛使用的Java Web框架,它提供了全面的基础设施支持,包括依赖注入、AOP(面向切面编程)、数据访问和Web应用开发等。 13. **JSP标签库**:JSTL(JavaServer Pages Standard ...

    基于JSF架构的WEB应用开发研究

    JavaServer Faces (JSF)作为一种基于Java的Web应用开发框架,因其强大的功能、易用性和可维护性,成为众多开发者的选择之一。本文将深入探讨基于JSF架构的Web应用开发的关键技术点。 #### 二、JSF架构概述 ##### ...

    JAVA WEB课件

    2. **客户/服务器模型**:Web应用基于客户/服务器(C/S)架构,客户端(通常是浏览器)向服务器发送请求,服务器处理请求并返回响应。这种模式是Web应用的基础,也是理解Web交互方式的重要概念。 3. **HTML语言与...

    Java Web开发课程设计-成绩评定表.pdf

    Java Web 开发是指使用 Java 语言进行网络应用开发的过程。它主要涉及使用 Java 语言来构建可以在 Web 浏览器上运行的应用程序。Java Web 应用通常包括 HTML 页面、Java Servlets、JavaServer Pages (JSP) 和其他 ...

    Java Web应用中常见的错误和异常问题处理.pdf

    Java Web应用是基于Java技术的互联网应用开发,这种应用是由服务器端和客户端两大部分组成。在Java Web应用的开发过程中,软件架构通常采用分层思想,旨在降低模块间的耦合度,并增强模块的内聚性。这种设计思想虽然...

    基于Java Web+ssm+vue的在线测试管理系统.zip

    这是一个基于Java Web技术栈,结合SSM(Spring、SpringMVC、MyBatis)和Vue.js前端框架构建的在线测试管理系统。系统旨在提供一个高效、便捷的平台,用于创建、管理以及进行各种在线测试。下面将详细介绍这个系统的...

    Spring新特性之Java Config在Web开发中的应用.pdf

    Spring Boot是一个基于Spring框架的项目脚手架,它默认采用Java Config配置,并且提供了一系列的自动配置特性,使得开发者可以更快速地搭建和配置一个Spring应用。 在实际案例中,Java Config的表现是显而易见的。...

    基于java ssm框架在线考题系统源码,附sql文件

    这是一个基于Java SSM框架开发的在线考题系统源码,其中包含了完整的前后端代码和数据库配置文件。SSM框架是Spring、SpringMVC和MyBatis的集成,是Java Web开发中常用的一种轻量级框架组合。这个系统利用了这些框架...

    基于Java的集流浪动物的领养、救助,家庭宠物找寻,宠物社区为一体的宠物服务平台.zip

    这是一个基于Java技术实现的综合性宠物服务平台项目,...以上是对这个基于Java的宠物服务平台的综合分析,每个模块都涵盖了丰富的知识和技术点,对于学习和理解Java开发以及Web应用的全栈开发流程具有很好的实践价值。

    水果销售商城系统+论文+源码 jsp ssh mvc java web j2ee毕业设计

    【标题】中的“水果销售商城系统+论文+源码 jsp ssh mvc java web j2ee毕业设计”表明这是一个基于Java Web技术实现的电子商务平台,主要用于水果销售,且包括了完整的系统、论文以及源代码,适合于计算机专业学生的...

    基于ssm+Java Web的大学生艺术节管理系统.zip

    《基于SSM+Java Web的大学生艺术节管理系统》是一个典型的Web应用开发实例,结合了Spring、SpringMVC和MyBatis三个核心框架,通常被称为SSM框架。此系统旨在为大学生艺术节提供全面的管理解决方案,包括活动组织、...

    基于OSGi的Web应用开发系列(全).pdf

    OSGi(Open Service Gateway Initiative...理解并掌握这些工具和技术对于成功开发基于OSGi的Web应用至关重要。通过本系列教程,读者将逐步了解如何解决上述问题,如何在OSGi环境中规范SSH开发,以及如何保持开发效率。

    Java Web编程实战宝典教学PPT

    Spring MVC是Spring框架的一部分,用于构建Web应用,提供了与Struts类似的MVC架构,但更灵活且功能更丰富。 6. **Hibernate**: Hibernate是一个强大的对象关系映射(ORM)框架,它简化了Java应用与数据库之间的交互...

Global site tag (gtag.js) - Google Analytics