论坛首页 Java企业应用论坛

关于Java开发不明白的一些问题

浏览 43404 次
该帖已经被评为良好帖
作者 正文
   发表时间:2011-03-09  
粗略看了下楼主回复。
你应该检讨一下为什么你要在struts2里面去获取request,response.
你还应该检讨一下,为什么你用struts2,把M和C都放一起了。

在这种以post,get方式为主的web应用下,除了struts2,楼主再给个优雅的解决方案击败struts2

0 请登录后投票
   发表时间:2011-03-09  
wuxing429 写道
wxno1 写道
小伙子,你年轻了啊,关于这些东西已经不需要争论了,一看你做的WEB项目就是自已公司独立的小项目,又不存在与其它系统的连接,真的对于小项目,你的说法可能不错,甚至你不用JAVA直接在页面级写JDBC连接也没人说你什么,但是真正的大项目按你的说法是会出大问题的



大项目还用别人的框架!很悲剧!

大项目的确都倾向自己解决框架设计,以集成和可扩展为第一目标,不会过多考虑为复用抽象
流行框架主要都是解决复杂度低但繁琐的问题,设计的时候就以复用为目标,一上来就把应用模型的给划出来
Nasa如果需要会自己弄操作系统,adobe或者netscape做产品自己实现gui框架
0 请登录后投票
   发表时间:2011-03-09  
jl580650 写道
只有真正的内聚,没有绝对解耦,但凡你在某个地方切断联系,那么你必然会在另一个地方重新产生联系
高内聚,低耦合=解耦,所以你的话我基本同意

本来嘛,不变的东西,用基类实现,不同的行为用子类复写,对于外界的调用,可以定义一个接口
这句话我完全同意

关于Struts1和Struts2两种框架的观点我同意你的观点

关于接口我完全不同意

IOC那块我认为就是接口的产物,1个接口有2种实现,需要更换的时候就可以更改XML不必动代码和重新编译

基于上述观点,我也认为Annoation不伦不类



structs2 绑定到方法用到了放射,开发效率虽高点,但性能极低
Annoation可以用在实体持久化上,但不该用在层与层之间的注入,因为这样和硬编码没有区别,层与层之间必须要用接口,不能贪一时的简单
0 请登录后投票
   发表时间:2011-03-09  
nighthawk 写道
粗略看了下楼主回复。
你应该检讨一下为什么你要在struts2里面去获取request,response.
你还应该检讨一下,为什么你用struts2,把M和C都放一起了。

在这种以post,get方式为主的web应用下,除了struts2,楼主再给个优雅的解决方案击败struts2



看到这个我忍不住要说一句,不要动不动就要求提出问题的人拿出更好的解决方案,这个是不负责任的说法,如果人家有更好的解决方案,还问提问么。

就目前中国IT行业来看,确实是需要创新思维了,太多的程序员都只是在使用框架,而且泛滥得也比较严重,楼主的意思是别人的东西我们不要只是照搬来用,更需要的是思考。

再说到项目,可以这么说,就当下国内情况,很多项目都是快速开发的,所以不得不采用框架,甚至是在别的项目基础上修改而来,不可避免的滥用框架,这个现象我相信是普遍的。

就我个人而言,也是比较讨厌框架的,太过依赖框架,只会让自己变成代码工人。
0 请登录后投票
   发表时间:2011-03-09  
nighthawk 写道
粗略看了下楼主回复。
你应该检讨一下为什么你要在struts2里面去获取request,response.
你还应该检讨一下,为什么你用struts2,把M和C都放一起了。

在这种以post,get方式为主的web应用下,除了struts2,楼主再给个优雅的解决方案击败struts2


只要是get/post就别谈什么优雅,因为java语言本身就没有什么优雅可言!C#里面有delegate,C/C++里有函数指针,而Java里只能用接口,这就是个杯具,
擦除式的泛型实现,无可避免的unchecked警告,哪里有优雅可言?

讲优雅,我用rest,用ruby即使用C#也比Java强

我不想拿Struts2和任何框架比较,目前市面上的框架,的确没有谁能击败struts2,但这不代表它没有缺点
还有不是我为什么把M和C放在一起了,是Struts2本身把M和C的功能集成到一起了,
如果你不明这个,我觉得你还真得好好理解一下MVC
0 请登录后投票
   发表时间:2011-03-09  
没有开发过,多厂家,多语言,全国性质的系统,楼主如果 开发这样的系统 在想想。。。
0 请登录后投票
   发表时间:2011-03-09  
nianien 写道
vtudiv 写道
感谢楼主的耐心解答,小弟愚钝,还是没太理解。。。
1.没看懂你那个比喻,虽然确实很恐怖;
2.什么叫抽象成方法;
3.为什么不纠结Request和Response,又说做Web开发与Web解耦是蛋疼?
4.写Struts2的Action时绝大多数情况不需要Request和Response,直接测试就行,而Struts1不行,所以和框架还是有一定关系的吧?

谢谢~

1.哪个比喻是是说,框架会改变你的方法逻辑,比如拦截器你懂的,不就不多说了
2.一段代码逻辑,封装起来就是方法
3和4.不管什么项目都是由代码组成的,代码可以划分为函数,也可以划分为方法,总之需要一些输入和输出
当然对于方法而言,也可以不需要显示输入,因为方法的载体——对象可以提供
当你用Request和Response的时候,只有两种情况:
第一,如果你用的不是用这两个对象本身,而是需要它所载有的数据信息,
那么凡是它能够提供的数据你都可以抽象成参数,
于是,这里Struts2的解耦根本就是画蛇添足,完全不必要的

第二,如果你用的是Request和Response对象本身,那么你就必须有Web容器的支持,
这样,Struts2就根本不肯能解耦,即使你提供嵌入式的Web组件,这也不叫解耦,那是测试提供的非开发环境而已


非常感谢您的耐心讲解,感谢前辈~
1.我还是比较感谢框架改变我的方法逻辑,不然还像以前BASIC那样写函数恐怕没公司敢要我;
2.晓得您的抽象是什么意思了,谢谢讲解;
3和4.第二种情况我完全赞同您的观点;而第一种情况,如果Struts2不画蛇添足地帮我解除与request的耦合,我怎么获取这些参数呢?


再次感谢"nianien" !~
0 请登录后投票
   发表时间:2011-03-09  
我是来逛的
0 请登录后投票
   发表时间:2011-03-09  
看楼主和回复来学习学习
0 请登录后投票
   发表时间:2011-03-09  
java的框架是最多,国内做java的大部分时间都耗在折腾这些框架上了,面试动不动就问看过啥啥框架代码吗,说没看过就一脸鄙视。这比看懂项目的垃圾代码还难吗,优秀的设计也不是看框架代码看出来的,是反复思考和权衡现实业务和设计的结果,如果说框架能大幅提高开发成本,只能说明这个项目是个扁而广的项目,不管多大都不算很复杂,只能算繁琐
看ssh纯粹是为了面试,要记ssh的坑,怎么框架加框架集成,有技术含量吗?但很多人就看这个,很多人也就会这个
国内做java的最喜欢拿面向对象框架设计模式说事,而做c++却更倾向对语言本身的思考,其实两种程序员面临的问题复杂度一样,但思考方式差别很大,java领域框架的捍卫者比骂框架的多很多,而c++相反
看国内java牛人的blog基本上感觉就是这些我不会但我要学没难度,看c++的牛人blog总会想“这个仙人到底在说什么?”,都是框架害的,c++随着工作时间变长对语言理解会越来越好,因为受的磨难创造的bug都会比java多很多,但java做底层coding的时间很多都花在熟悉和整合不断变化的框架上去了,做几年可能还是半瓶水,思想一套一套但底子依旧不好。
不是java不好而是国内java环境的确很畸形,过多的框架造就很多半瓶水,这些半瓶水走上高级职位招来了更多的同类。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics