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

基于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这个很复杂很有前途的高级领域吧。
分享到:
评论
40 楼 tornyz 2007-05-13  
qqeerr20012001 写道
也许国外的大牛们吃饱了撑的,没事都发明个MVC来玩,今天struts,明天webwork2,Sprign mvc,可为什么会这样,当然是各人都有各人关注点,关注点不同,便不断地重复造轮子


有意思,发挥下.
"国外的大牛们"大概是指开源世界的大牛,这些人应该不至于"吃饱了撑的",搞这么多东西主要还是为了出名谋利(名利绝对是正当的动力,没什么好害羞的).
"关注点不同",人家只关注自己喜欢的,所以能深入进去然后做出东西来.
轮子的比喻不是很恰当,这些框架不是轮子,应该说是交通工具.
39 楼 hellowei 2007-05-12  
有那么大的能耐吗?说总是比做容易。
38 楼 lgx522 2007-05-11  
分层及框架自然是有用的,可是为什么要用,在什么情况下用,什么情况下不如不用,搞清楚了这些问题才可以说基本上用熟了框架。

国内的互联网领域,大家搞JSP那么多年了,为什么份额如此之小?为什么ASP被MS扔了那么多年,还能在国内网站占据头把交椅?为什么Discuz和动网会如此成功?
现在的时代,纯技术层面几乎难有秘密可言。如何运用IT技术帮助客户创造商业价值或提高业务效率,是我们每一个程序员应该思考的问题。Java在Web+DB领域开发速度慢,几乎已经成为一种常识,这正是JSP致命的“硬伤”。如何解决这个问题,或者说搞清楚我们的技术商业定位,弄明白哪些应用我们当仁不让,哪些应用我们该退位让贤,这应该是每一位JSP开发人员应考虑的重中之重。

搞技术,不能人云亦云,多问几个为什么,技术上进步才会大,职业才会有前景。
37 楼 xieye 2007-05-11  
同意上面的说法:
但是要比起扩展性来说,良好的分层与框架的使用会给我们带来很大的便利。
36 楼 xieye 2007-05-11  
同意楼上的说法:
但是要比起扩展性来说,良好的分层与框架的使用会给我们带来很大的便利。
35 楼 jimmy.shine 2007-05-10  
ASP的思维。如果都是开发书本上的注册、登陆的demo,直接一个jsp+数据库搞定。现实中商用的程序都是复杂度比较高的。
因需而动,可以自己根据自己开发项目的需要,选择合适的技术,自己生成类似于ror的框架。
34 楼 maoxiaolu2000 2007-05-10  
lgx522 写道
Java适合的是解决那复杂的10%应用,也就是真正的企业级应用。在这个领域,目前没有哪样技术成熟到可以对Java说No!
可惜我们90%的Web开发人员需要解决的正是那些90%的简单应用。不客气的说,国内90%的Java开发人员面对的问题也正是Web+DB的问题。
在这个领域,PHP是最快最成熟的,不管你认为它是草根也罢、挣不到钱也罢,人家就是很快地做出了众多优秀的作品。多年互联网界的战争硝烟散尽后,大多数用户最终选择了PHP。
RoR则是这个领域最具潜力的OOP方案,但RoR的效率、安全性、成熟度目前还是有很多问题的,需要大家多多努力啊。


90% 的Web+DB问题 要比所谓的复杂的10%应用 难以解决

并发 同步 缓存, 数据在WEB上表现, 用户体验度, 安全性, 可维护性 ......

如果java不是为了解决这些问题 也不会诞生出这么多的框架了
33 楼 ak478288 2007-05-10  
downpour 写道
quote]
没有最好的技术,只有最合适的技术

同意你的观点,
对于网站开发,一切都要以性能为主。选用最合适的技术,在扩展性和性能上选取最优组合
32 楼 umbrella 2007-05-10  
WEB就是没有技术含量的代名词,现在出来那么多东西,不就是为了钱嘛。
31 楼 shaucle 2007-05-10  
leebai 写道
楼主这个问题,很好。

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

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

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

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




俺是来看李白的.
30 楼 lgx522 2007-05-10  
Java适合的是解决那复杂的10%应用,也就是真正的企业级应用。在这个领域,目前没有哪样技术成熟到可以对Java说No!
可惜我们90%的Web开发人员需要解决的正是那些90%的简单应用。不客气的说,国内90%的Java开发人员面对的问题也正是Web+DB的问题。
在这个领域,PHP是最快最成熟的,不管你认为它是草根也罢、挣不到钱也罢,人家就是很快地做出了众多优秀的作品。多年互联网界的战争硝烟散尽后,大多数用户最终选择了PHP。
RoR则是这个领域最具潜力的OOP方案,但RoR的效率、安全性、成熟度目前还是有很多问题的,需要大家多多努力啊。
29 楼 cherami 2007-05-10  
严重同意楼主的观点。

没落的Java社区:
http://www.jiehoo.com/%e6%b2%a1%e8%90%bd%e7%9a%84java%e7%a4%be%e5%8c%ba.htm
28 楼 anchor 2007-05-09  
umbrella 写道
所以要掌握好技术,自己能造轮子就不用再去学别人造出来的轮子,要不然世界变化这么快,今天一个明天一个,公司现在用这个明天用那个,什么时候才是尽头?你要学到什么时候?你烦不烦???你要成为机器,我没办法。


那你怎么不从焊接电路作起.自己先焊台机器,再用01码写个编译器,在写个自己的语言,弄个自己的框架.....
甚至你自己发明种语言.......
上帝的活你都做了......

过个一年半载你的团队撤走了,换个团队来维护....
我的天啊....
他们真的要变成上帝了....
27 楼 过儿oO 2007-05-09  
客户就是上帝,说的一点都不假
人家想用啥,你就得给用啥
26 楼 umbrella 2007-05-08  
yfmine 写道


......



SOCKET,HTTP这些很难吗,要实现SERVLET的功能很难吗?这些都是上层应用,人家封装好,处理好协议交给你用,简单吧?你对TCP/IP了解多少?你输入的要连接的端口和地址在什么地方放置?传输的过程中源地址和目的地址会不会改变?某些人用API建个SOCKET,发送些数据,就自以为了解网络通信;数据从应用层到物理层是怎么处理的?接收数据从物理层到应用层又是怎么处理的?
25 楼 weiqingfei 2007-05-01  
Julien 写道
……在JSP里面写比在JAVA里面写要好的多。
JSP不需要手工重新编译部署重启服务器。
任意改动之后自动检测重新部署,完全不需要额外的代码或者框架支持。我有一个简陋的自制框架就是JSP的。
基本原理是:JSP里面用动态类实例描述一个action,然后把这个实例放到request里头去,再由servlet执行。这样我可以不用重启tomcat调试action。
但是这样牺牲了Controller继承派生的可能性。而且正如我在首贴说的,免重启不是最重要的,最重要的是零初始化。
其实JAVA用不着看着其他脚本语言流口水,JSP已经是最便利的效率最高的脚本语言了(语言特性是否方便另算)


效率?什么效率?你觉得编译jsp的效率很高么?
24 楼 Julien 2007-05-01  
……在JSP里面写比在JAVA里面写要好的多。
JSP不需要手工重新编译部署重启服务器。
任意改动之后自动检测重新部署,完全不需要额外的代码或者框架支持。我有一个简陋的自制框架就是JSP的。
基本原理是:JSP里面用动态类实例描述一个action,然后把这个实例放到request里头去,再由servlet执行。这样我可以不用重启tomcat调试action。
但是这样牺牲了Controller继承派生的可能性。而且正如我在首贴说的,免重启不是最重要的,最重要的是零初始化。
其实JAVA用不着看着其他脚本语言流口水,JSP已经是最便利的效率最高的脚本语言了(语言特性是否方便另算)
23 楼 znjq 2007-05-01  
楼上的,我有说一定不能在action中写jdbc么?个人喜好,在jsp中写都没人反对你。呵呵
讨论这个就撤远了。
22 楼 yfmine 2007-05-01  
znjq 写道

改xml和改java代码,哪个更简单?
action中指定view,有点java中写jdbc的味道...

改java代码有时候可能更简单,编译期的检查,在部署时就会发现问题,并且action连接口都可以不要了……
改java代码不代表就在action里指定view啊,高兴了你也可以像xml一样,搞个java的配置么。事实上,view都是在action里直接/间接指定的。spring的jdbcTemplate就是为了在java里写jdbc嘛,谁说一定不能在java中写……

downpour 写道

很奇怪,谁让你Web开发用Java了?国外多数的web应用都是php写的。

有时候也不是自己说了算啊,客户=上帝,这种情况下……只有那句名言“我要杀了我们客户”……   



umbrella 写道

呵呵,为什么不能更快呢?我们有自己用JSP+SERVLET实现的框架,干什么一定要用别人的,我们写适合我们项目的框架,做起项目来比你们用那些开源框架速度更快,效率更高,像那些开源框架东西一大堆,放在那里不用浪费资源又耗时间了,开源框架里的东西你们用到了哪些?


对“一个MAP,一个接口,一个SERVLET就能搞定一切”比较感兴趣,不知可否讲讲。听起来倒是简单,不过基于请求驱动的框架都是一个servlet分发,一个action实现,返回一个result嘛,servlet本身就是这么一个框架。在你自己的框架里,request参数怎么取,统统request.getparameter?这里你需要去实现吧。数据库操作怎么写,又得封装下吧。那如果我要用户页面定制模板呢?随着项目模块增多,你的URL映射配置为了减少冲突,需要拆分,不是又要自己写代码?如果需要拆分二级域名,拆分应用呢。随着项目的复杂,这个框架需要添加一些功能,需要有人维护,到最后,你如何能保证你写的框架能让其他人用起来觉得简单呢,你要的是完全在你手掌上的东西,但其他人不一定认可,他可能觉得别扭,要改东西说不定还得去跟踪你框架的源码。我认为,在小项目里,一定程度上自己封装的实现可能实现更快,但当项目大了后就不一定了,不确定性太多了,需要修改的地方也太多,就怕自己写的框架到后来反而成了障碍。
自己写的框架,大多数时候都会发现又造了个轮子,而且这个轮子不一定圆。。。
个人愚见,对于自制框架深受其害,见笑了。

umbrella 写道

你还别说,这都是最基本的,你看见哪个框架不是基于SERVLET,JSP的?如果你不能用这些基本的东西写出一个类似你所用的框架的东西,那你把那框架用的再熟也只是局限于那个框架,能把那些东西看透,根本就不屑去使用那些东西。因为不定因素太多了,你要的是完全在自己手掌上的东西。


你还别说,这都是最基本的,你看见哪个servlet不是基于java,socket,http的?如果你不能用这些基本的东西写出一个类似你所用的servlet的东西,那你把那servlet用的再熟也只是局限于那个servlet,能把那些东西看透,根本就不屑去使用那些东西。因为不定因素太多了,你要的是完全在自己手掌上的东西。

别无他意,纯恶搞,jvm,os,cpu,火星……上次那个不会指针的都不是程序员怎么来着……


Julien 写道

只有开发人员会改的东西完全可以配到代码里面去,xml里面只放使用人员管得到的东西就好。

我也觉得,好多都是修改配置文件,然后又用java写个配置去读,事实上,系统里这个xml配置在运行期根本就不会调整,都是由开发人员确定的。结果xml满地都是,编写容易出错不说,管理起来也混乱了。像对于普通的使用人员,系统都会实现一个程序界面来的,总不至于让普通的管理员去修改xml嘛,改错了怎么办
21 楼 luojie 2007-04-30  
downpour 写道
很奇怪,谁让你Web开发用Java了?国外多数的web应用都是php写的。谁让你用Java开发的时候用webwork和hibernate了?这帖子完全是夺人眼球嘛。

Java在Web开发上的速度是没有办法和.Net相比的,这个是不争的事实。但是要比起扩展性来说,良好的分层与框架的使用会给我们带来很大的便利。现在的问题就在于,是不是一旦用了Java,就必须上Webwork,Hibernate?这个实际上还是要根据实际情况来,任何技术只要用的好,用的熟练,都是好技术。

没有最好的技术,只有最合适的技术

相关推荐

    基于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