论坛首页 Java企业应用论坛

spring3mvc与struts2比较

浏览 162478 次
该帖已经被评为良好帖
作者 正文
   发表时间:2010-06-23  
slaser 写道
downpour 写道
有关Struts2的Action职责问题。我认为可以根据功能模块进行划分。一个功能模块,一般会有2到3个Action,每个Action将承担一定的职责。

比如User相关的功能模块。可能需要2个比较基本的Action:UserController和UserView。UserController负责User相关的操作,UserView负责User显示的相关操作。如果User这个功能模块太大,比如牵涉到User的权限,那么就需要增加新的Action,例如UserRoleController和UserRoleView。

无论怎么说,按照Controller和View进行Action的功能分类,是目前为止我认为比较合理的一种方式。View的操作对象往往是id和entity本身,所以这2个变量会在一个Action中共享,你根本不用去担心某个parameter是for哪个操作的。你的关注点只要停留在你的操作本身就可以了。

感觉这样划分并不易把握。我觉得一个页面一个action是最好操作的,虽然可能会形成一些冗余,但是可维护性很好。


你的感觉应该不准确。

举例来说,save和update的Action在多数情况下是分页面但是同Action的。
0 请登录后投票
   发表时间:2010-06-24  
downpour 写道
slaser 写道
downpour 写道
有关Struts2的Action职责问题。我认为可以根据功能模块进行划分。一个功能模块,一般会有2到3个Action,每个Action将承担一定的职责。

比如User相关的功能模块。可能需要2个比较基本的Action:UserController和UserView。UserController负责User相关的操作,UserView负责User显示的相关操作。如果User这个功能模块太大,比如牵涉到User的权限,那么就需要增加新的Action,例如UserRoleController和UserRoleView。

无论怎么说,按照Controller和View进行Action的功能分类,是目前为止我认为比较合理的一种方式。View的操作对象往往是id和entity本身,所以这2个变量会在一个Action中共享,你根本不用去担心某个parameter是for哪个操作的。你的关注点只要停留在你的操作本身就可以了。

感觉这样划分并不易把握。我觉得一个页面一个action是最好操作的,虽然可能会形成一些冗余,但是可维护性很好。


你的感觉应该不准确。

举例来说,save和update的Action在多数情况下是分页面但是同Action的。

你这个例子确实使用相同action比较好,但是也不是绝对的,如果update和create有比较多不同的逻辑,是可以分2个action的。反过来如果完全差不多,为何不用一个页面?
0 请登录后投票
   发表时间:2010-06-24  
curd操作通常都是一个开发人员负责,
需求变化或者其他原因需要修改维护的时候通常都需要curd同时修改。
所有从开发效率和维护效率上考虑。
我支持curd操作 集中在一个 action。
把curd分成4个action绝对会导致开发人员的反抗。
0 请登录后投票
   发表时间:2010-06-24   最后修改:2010-06-24
byk 写道
curd操作通常都是一个开发人员负责,
需求变化或者其他原因需要修改维护的时候通常都需要curd同时修改。
所有从开发效率和维护效率上考虑。
我支持curd操作 集中在一个 action。
把curd分成4个action绝对会导致开发人员的反抗。

你要多考虑一下交接的成本,由于各种原因导致这个action让别人来维护,挤在一起很容易让接手的人头晕。

维护和修改成本一般远大于开发成本。

即使是同一个人维护,半年不碰再让他改,没有完整注释的话,一样有可能忘记的差不多了,此时当然是合理(有些时候的save和update逻辑没那么简单的)的拆分Action更好一点。
0 请登录后投票
   发表时间:2010-06-24  
icewubin 写道
byk 写道
curd操作通常都是一个开发人员负责,
需求变化或者其他原因需要修改维护的时候通常都需要curd同时修改。
所有从开发效率和维护效率上考虑。
我支持curd操作 集中在一个 action。
把curd分成4个action绝对会导致开发人员的反抗。

你要多考虑一下交接的成本,由于各种原因导致这个action让别人来维护,挤在一起很容易让接手的人头晕。

维护和修改成本一般远大于开发成本。

即使是同一个人维护,半年不碰再让他改,没有完整注释的话,一样有可能忘记的差不多了,此时当然是合理(有些时候的save和update逻辑没那么简单的)的拆分Action更好一点。

靠谱
所以说赶紧扔了struts2吧
springmvc3从根子上帮助了开发人员
0 请登录后投票
   发表时间:2010-06-24   最后修改:2010-06-24
xly_971223 写道
icewubin 写道
byk 写道
curd操作通常都是一个开发人员负责,
需求变化或者其他原因需要修改维护的时候通常都需要curd同时修改。
所有从开发效率和维护效率上考虑。
我支持curd操作 集中在一个 action。
把curd分成4个action绝对会导致开发人员的反抗。

你要多考虑一下交接的成本,由于各种原因导致这个action让别人来维护,挤在一起很容易让接手的人头晕。

维护和修改成本一般远大于开发成本。

即使是同一个人维护,半年不碰再让他改,没有完整注释的话,一样有可能忘记的差不多了,此时当然是合理(有些时候的save和update逻辑没那么简单的)的拆分Action更好一点。

靠谱
所以说赶紧扔了struts2吧
springmvc3从根子上帮助了开发人员

没发现“根子上”啊,个人认为两个框架都可以用,struts2还更普及一点,了解的人更多一点,加一点规范即可,并不存在哪一个框架有压倒性的优势。

在页面逻辑复杂,表单参数繁多的时候,默认就是多例的Struts2也是很好用的。

题外话:页面逻辑复杂可以通过交互方式调整(适当的地方用ajax),能简化Action这一层的代码,当然前端会增加一些JS代码。
0 请登录后投票
   发表时间:2010-06-24   最后修改:2010-06-24

在web层只关心的就是上传文件功能...
现在做网站或系统全部静态化.....
开发效率120%


网站大了,什么代码都有。。整个网站的代码都乱七八糟的。
0 请登录后投票
   发表时间:2010-06-24  
superyang 写道

在web层只关心的就是上传文件功能...
现在做网站或系统全部静态化.....
开发效率120%


网站大了,什么代码都有。。整个网站的代码都乱七八糟的。

网站大了就要做项目切分了
大项目切成多个项目
不会这么乱
0 请登录后投票
   发表时间:2010-06-24   最后修改:2010-06-24
xly_971223 写道
superyang 写道

在web层只关心的就是上传文件功能...
现在做网站或系统全部静态化.....
开发效率120%


网站大了,什么代码都有。。整个网站的代码都乱七八糟的。

网站大了就要做项目切分了
大项目切成多个项目
不会这么乱


有此人不会写代码的,不管代码的质量怎样,只要实现功能就OK,最后网站变得慢,那时想提高网站性能也就很难了...
ps:这几天,网站变慢了,什么方案都弄,我是怕了...
0 请登录后投票
   发表时间:2010-06-24  
superyang 写道
xly_971223 写道
superyang 写道

在web层只关心的就是上传文件功能...
现在做网站或系统全部静态化.....
开发效率120%


网站大了,什么代码都有。。整个网站的代码都乱七八糟的。

网站大了就要做项目切分了
大项目切成多个项目
不会这么乱


有此人不会写代码的,不管代码的质量怎样,只要实现功能就OK,最后网站变得慢,那时想提高网站性能也就很难了...
ps:这几天,网站变慢了,什么方案都弄,我是怕了...

这是你们招聘的时候,人员能力参差不齐的原因。
关键位置在人力上花钱是不会浪费的。
0 请登录后投票
论坛首页 Java企业应用版

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