论坛首页 入门技术论坛

我为什么不用struts

浏览 31243 次
该帖已经被评为新手帖
作者 正文
   发表时间:2011-04-19  
差点睡了...结果看到这个比喻笑醒了
0 请登录后投票
   发表时间:2011-04-19  
hexiaodong 写道
ctoeye 写道
。。。。
复杂的对象组合,是在service层完成。action本身就不应该做这些东西。你在action做这些封装本身就是你设计的失误!action只是简单的中转。也就是说你这个order直接放在action的属性中,或者可以定义model驱动。界面直接order.xx.xx就完事了。多麻烦的事?
还json,还map,不知道你要搞什么?你搞的那点东西就你自已懂,别人怎么办?以后的人怎么办?struts是大家都懂的,后来的人学习成本低。也利于产品的维护。不懂就学,别jjyy。
我以前公司有个人拿他写的所谓的mvc框架给我看,说多么多么好,被我一陈批。不知道这个人是不是你。


order.details是一个集合,而不是一个简单属性。你能用order.details.goods.id的方式让order对象关联到一个集合,而集合中又包含一些goods对象么?
复杂对象的组装如果都在service层完成,那么在用户在做一件事情的时候,你不得不让用户的浏览器和服务器进行很多次的交互。当然你可能没有见过复杂的交互,这不奇怪的。但是最好别乱咬人。

为什么不行?
在做一件事情的时候,什么多次交互?没有ajax的吗?根本不知道你说的什么。你那破web应用有什么复杂的交互,我就奇了怪了。搞游戏的界面比你的交互复杂吧。界面的复杂度和用不用什么框架根本就没什么关系。是你咬人吧。
0 请登录后投票
   发表时间:2011-04-19  
ice123456 写道
麻烦几位,技术出身就只牵扯技术就算了。  没什么好咬人不咬人的

你会咬人呀?
0 请登录后投票
   发表时间:2011-04-19  
hexiaodong 写道
ice123456 写道

说句实话。我承认你说的都比较在理,有时候自己写一个简易工具(个人认为只是工具而已),有时候可能认为会比框架的功能好,也可以避免很多效率的问题。  但是我感觉你上面说的话,有点过重,导致其他喜欢struts2的人有点反感而已。


简单就是最好的设计,现在讲点道理,顾虑可真多啊。

什么叫简单就是最好的设计?简单是要看场景的。一个大型的项目,不是简单那么简单。要考虑很多的东西,通用性、标准化、可扩展、易维护等等。讲道理可以,不过不要做井底娃,不要老抱着手里那点小成就不放。比你牛的人多了去了,写的框架也比你复杂多了。
0 请登录后投票
   发表时间:2011-04-19  
hexiaodong 写道
我要说的就是struts又复杂,又不能满足现在的需求啊。
再说了,order.user.id之类的命名又不是什么http规范,仅仅是struts为了能够把http参数注入action而约定的input命名格式。
采用json格式提交数据,既能够使代码最简化,又能提供最大的灵活性。

就struts那点破东西,你都觉得复杂,我就没什么话说了。json是一种好东西。
0 请登录后投票
   发表时间:2011-04-19  
hexiaodong 写道
我的同事或者下属不一定要和我差不多水平,他们不学我的框架开发,就只能学更复杂的struts1或者struts2了。
我的框架仅需要1-2个小时的学习成本而已,前端都是封装好的Js控件,一般都是需要编写的js代码主要有form.getValue(),grid.getValue()和tree.getValue()等等,然后把得到的结果提交到服务器段就行了。

要说快速开发,你没见过从底层hibernate底层表结构到复杂界面拖拖拉拉生成的RAD框架吧?
0 请登录后投票
   发表时间:2011-04-19  
ice123456 写道
hexiaodong 写道
ice123456 写道

说句实话。我承认你说的都比较在理,有时候自己写一个简易工具(个人认为只是工具而已),有时候可能认为会比框架的功能好,也可以避免很多效率的问题。  但是我感觉你上面说的话,有点过重,导致其他喜欢struts2的人有点反感而已。


简单就是最好的设计,现在讲点道理,顾虑可真多啊。


同意。就跟写代码一样,不用注释的代码就是最好的代码。但是你也认为你和你的同事或下属都是一样或差不多的水平吗?  你认为你永远不会带入学生开发人员吗?  我相信学生也可以很快去学习你写的框架,但是不一定他能理解你所完成的功能。

为什么要理解所完成的功能,会用就行。底层的开发,本来就是码农。
0 请登录后投票
   发表时间:2011-04-19  
完事,收工!
0 请登录后投票
   发表时间:2011-04-19   最后修改:2011-04-19
george 写道
你说的两个问题,可以归纳为:
1:Struts2 的Action是有状态的,存在成员变量;
2:Struts2 不能很好地支持json/xml甚至jpg等格式的输出;


你这两个问题,可以使用Spring MVC 3 来解决,但是如果使用Spring MVC 3,又引入一个致命的问题:Spring MVC 3 使用annotation可以把藏在任意层次的类映射到一个url上,这样,如果项目管理人员无法强制约束组员的命名风格和包路径存放规范,会造成到看到一个url,到处去找其对应的控制器类的问题。
使用struts2-convention-plugin 就不会有这个问题,因为它是使用约定的,你不按照约定来存放和命名action,你的url根本就无法访问,程序也运行不起来。

另外,Struts2所使用的模型驱动还有一个问题:当你的页面输入框内输入的数据类型,和实体类定义的数据类型不一致时(比如实体类A字段类型为Integer,而页面上为该字段输入了aaa),提交页面,Struts2既不报错,也不能执行,程序根本就不会进入Struts2的方法(使用struts2-convention-plugin 时),这是一个大问题。

但是和Spring MVC 3 的包路径无约束造成的项目混乱相比,Struts2的种种缺点我还是忍受了。

所以综合上述,我还是选择了Struts2

    说得很好。struts两年,SpringMVC1年,现在用的是SpringMVC,至于杂乱嘛,人为规范管理好命名路径就可以。相比来说,Struts就很规范,但也存有不足,主要看你项目要求和你个人习惯而定。
0 请登录后投票
论坛首页 入门技术版

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