首页 > 如果你的同事这样使用Spring MVC,你该怎么办

如果你的同事这样使用Spring MVC,你该怎么办

    @RequestMapping(value="foo")
    public void funcCreate(HttpServletRequest request,
            HttpServletResponse response){
        try {
            String code = request.getParameter("code");
            String name = request.getParameter("name");
            String parentId = request.getParameter("parentId");
            String funcIcon = request.getParameter("funcIcon");
            String url = request.getParameter("url");
            String funcIndex = request.getParameter("funcIndex");
            
            SysFunction sysFunc = new SysFunction();
            sysFunc.setCode(code);
            sysFunc.setName(name);
            if (StringUtils.isNumeric(parentId)){
                sysFunc.setParent_id(Integer.parseInt(parentId));
            }
            sysFunc.setUrl(url);
            sysFunc.setIconName(funcIcon);
            sysFunc.setFuncIndex(funcIndex);
            sysService.addFunc(sysFunc);
            
            ajaxReturn(response, Constants.OPERATE_SUCC);
        } catch (Exception e) {
            log.error("系统功能创建异常!", e);
            ajaxReturn(response, Constants.OPERATE_FAIL);
        }
    }

    public void ajaxReturn(HttpServletResponse response,
            String content){
        if (content == null){
            return;
        }

        try {
            response.setCharacterEncoding("utf-8");
            response.setBufferSize(content.length() * 4);
            PrintWriter writer = response.getWriter();
            writer.write(content);
            writer.flush();
            writer.close();
        } catch (IOException e) {
        }
        
    }

我是不是该建议直接使用Servlet

补充:2015年8月11日09:09:57
情况是这样的,同事是经理认可的经验丰富的程序员(亲口跟我说的),我才是后辈

补充:2015年12月11日11:36:11
其实从大家的讨论可以看到,这样的代码是自己的编码习惯所致,可是在团队开发中,这样的习惯好吗?


记得java5出来之后,掀起了一股学习java5新语法的热潮,到现在这股“热潮”刮了10年了,仍然有许多大牛(真的是大牛,我对其能力毫不怀疑),在写着List l = new ArrayList();这样的代码,我不会说什么也觉得没必要说什么,人家大牛是从java1.2开始写程序的,那个时候没有这么多妖蛾子;人家牛的地方在于网络编程、通信协议、性能优化、图像处理等等具体领域,他愿意用新语法的时候当然可以用,但有时候不用我觉得也没什么,毕竟有的人习惯养成之后不是那么快就改,况且无伤大雅;
所以我觉得既然这位同事比你资深,你或许可以问问他为什么不用spring MVC的这些魔法?或许他有他的考虑,也或许他真的不知道,他以前是开发struts的呢?他不会你就教教他,下次就好了,毕竟这不难;
真是大牛的话,不应该被不会这种东西被否认,这太片面了


我也是这么过来的,都是一个程序员的成长过程,你为啥要鄙视初出道的后辈呢?你应该做的是引导他如何使用好……


这并不能说明什么,只能说明他不懂spring的那一套东西,亦或者不懂POJO之类的,所以写的靠近servlet了


反正这种获取参数的方式是被spring mvc支持的,可能是个人编程习惯的原因


除非他真的有什么原因这样写,否则还是劝他不要。我认为即使是一个大牛,也还是要与时俱进的,比如java的很多新特性,你难道一直不用吗?你再牛能牛过java的设计者们吗?国外的大牛肯定都是与时俱进的


看到一楼的回复,我想说其实springmvc有一个注解可以帮你过滤参数的
框架存在就是为了让开发更快更爽,写出问题了这种代码的人就是异端


你们沟通下,相互交流下吧~~~~
使用方法无关对错~~~~


其实写代码和打游戏一样,就怕遇到爱装x的队友,如果你的同事真的有能力,把 springmvc 源码流程都走了一遍,知道 springmvc 哪里封装的不好,那也没什么了,怕就怕半碗水的装x货。

以前我也遇到过一个同事,其他人都称他野路子多,连 JSON 序列化和反序列他都要自己写。项目中要使用第三方的SDK,他也不看 SDK 的文档,直接把人家的源代码给改了,结果发现不能进行自动升级...

基础能力很重要,但是阅读别人的文档更重要,springmvc 这种封装的如此完美的代码,就是为了简化web开发操作,如果偏偏要显示自己的能力出众,反而让代码冗余不易阅读,甚至导致性能下降,就得不偿失了。


先假设吧,这种方式比起框架自带的注解参数有什么好处呢?效率更高吗?注解的确会牺牲一部分效率,但题主的这个代码位置真的会因为使用注解就导致太多效率问题吗(而且Spring MVC自己还有来缓和注解的效率问题的手段啊)?如果不会,那就只能假设是因为他丰富的经验并不在Spring MVC上面,人家其他框架或者其他其他语言上牛的一笔也说不定。无论都牛,也总会有盲区的。不知者无罪,题主可以和他聊聊,于你于他都会有好处的,当然谈话方式上可能需要些技巧。
回答里面有提到用什么是人家的自由,如果他敲自己的代码那完全没有问题,但作为大家一起敲你就需要考虑其他人了,如果你们整个公司都是这样写Spring的那就呵呵了。既然用了框架就应该尽量发挥框架的特性,框架有的东西如果还自己用ugly code去实现,其他开发者看来也是相当不舒服的,是不是也应该照顾其他开发者的习惯呢?
如果他的牛逼体现其他地方那么项目经理就应该把他安排到他牛逼的地方,否则是不是可以理解为安排失误。
有很多是约定俗成的东西,找不到合适的理由,你再牛逼也得去遵守,如果你能创造一套规则那另当别论,不用给自己不愿去学习新东西找借口。做开发这行就是这样。


就像@kikong所说的,使用方法没有对错。
当我做的时候,再获取参数的时候。我可能比你的同事更加夸张,我会自己把HttpServletRequest封装一遍,然后在Controller中使用的是我封装过的Request。
而其实SpringMVC是支持直接在方法中参数列表中获取Parameter的,所以也可以用SpringMVC的这个特性。
至于我为什么会选择上面那种,只是我不希望我的代码会依赖框架,自己获取参数自己可以把握,而且你可以在自己封装的Request获取参数之前做一些其它事情,比如去空格等等。而这样带来的后果就是,开发效率可能没有直接用SpringMVC高。至于怎么用,每个人都有每个人的喜好


应该是传说中的一年经验用十年的那种,如果要用框架就要充分利用框架的特性为自己省事,要不就干脆不要用好了,classpath还少个几个jar包,war包都小点:)


同意楼上,一个好老师很重要

【热门文章】
【热门文章】