2014年 代码总结与疑问(二)

原创
2015/01/26 23:50
阅读数 393

    紧接上一篇博客 http://my.oschina.net/heweipo/blog/371633 ,对提出的六大问题中部分做一个总结,当然首先要感谢各位好友的热心评论,尤其是 关红福 、xia-yongsheng、甩葱哥以及蛙牛等人的回复,是他们让这篇博客显得更有意义。

    言归正传,下面就对这几个问题做一个总结,如果还有更好的建议,可以提出,本人学习的道路上感激不尽。

  问题一:

    关于if语句的使用,有嵌套if,有单分支if...

    有的人说只要注释清楚if嵌套也是合理的;有的人说三层嵌套以内是可以接受的;还有的人说采用反转式的防御式编程,这也是我最赞同的方式,如下:

if(xxx){
return;
}
if(xxx){
return;
}
if(xxx){
return;
}

先一层一层判断不符合条件的直接退出,那么剩下的就是可以正常执行的逻辑了,正好和你嵌套的逻辑判断是相反的,这样会更清晰一些。————————@关红福

if+return的方式确实不错,尽管return会在代码中影响代码可读性,但是比起else还是要好很多,另外使用单分支if语句判断必须要准确,因为不是所有if判断就能return的。所以,如果有必要请抛弃这种方式吧:

if(){
 
}else if(){
    if(){
     
    }else{
     
    }
}else{
 
}

问题二:

    关于Exception的捕获与抛出

    对于异常,大家褒贬不一。项目经理用他多年的经验告诉我:自定义异常那是自讨苦吃。其实以前是很流行这种写法的,因为异常的层层抛出可以到最上层捕获,然后可以合理的处理。可是我看我们项目里确实对自定义异常嗤之以鼻。那么异常具体应该如何处理呢?

“关于异常,一些异常如果不影响接下来的业务逻辑,可以自己捕捉了,自己处理。否则的话还是应该抛出异常”

——@蛙牛

那么,在项目中对异常就需要进行合理分类,哪些异常是影响业务逻辑继续执行的,哪些是可以捕获置之不理的。另外,项目中尤其忌讳使用一个具体的try-catch捕获Exception,原因是,不是对所有异常一视同仁,遇到某些异常我们应该停止运行。


问题三:

    参数的校验

    参数校验问题,我最赞同的是这个观点:

每一层自己都要做 *自己的* 校验。第一是要校验,第二是自己的不要提前替下一层做校验。“——@xia-yongsheng

参数校验是必然的,每个方法都应该做自己的合理校验,因为你不敢保证别人调用你时是否做过合理性校验,那么自己要对自己负责。有的人觉得只要约定好在某一层做好校验就可以,这个我是觉得不妥的,现在很多人都采用maven,每一层都可是一个独立的项目,请记住它是一个独立的项目,任何时候都可能被任何人使用。所以,我最赞同的是每个方法中需要合理校验,调用别人时不需要提前校验。

 问题四:

    JSONObject的使用

    这个问题很少有人回答,那么还是继续留着,我也不是很懂,至于Gson的使用,我也是很推荐的,但是我们项目中很少使用Gson.

 问题五:

    JavaBean的使用

    对于JavaBean貌似没有什么满意的答案,那就说说我们项目中如何使用的吧,我们项目中坚决摈弃这种JavaBean,只要是JavaBean的地方都可以采用Map<String,Object>替代,尤其是对于结果集的封装,我们采用List<Map<String,Object>;我记得我开始的时候使用JavaBean,那时候是用JSF+Mybatis编程,从头到尾都是JavaBean,结果发现如果用JavaBean做查询参数的话限制太大,个人推荐Map.

 问题六:

    JavaScript中方法参数定义问题

    对于这个问题,很多人都提倡如下做法,那么我也会学习如下方式,给编码一个规范,那么效率自然会提高。

在对象型的参数很多的情况下,是很有用的,一般三个参数以内不需要这样。这个事情按需求而定。比较明显的例子可以参阅jQuery.ajax()。“——@甩葱哥


最后:

    走过2014,期待2015,希望我们的代码更规范、更健壮!谢谢各位了!



展开阅读全文
打赏
1
7 收藏
分享
加载中
不好意思,PM只能发送10条,发不出去了。写在这回复希望你能看到。我们目前还在保密开发阶段,一期马上上线了,详细情况希望可以当面跟你介绍。
2015/07/29 17:55
回复
举报
学习了0
2015/03/21 13:45
回复
举报
learn_more博主

引用来自“Jerry-hu”的评论

关于javabean的问题也是令我头疼的问题……但是用map会不会对代码可读性有影响,因为你无法看到实际的key值?
你说得没错,使用Map后出现的错误更多了,因为Map没有javaBean那样key值明确,每次都要自己写key,所以错误发生的次数增多了!相比javaBean,我觉得还是Map要好用一些,可能我对javaBean理解不是很深。
2015/01/28 09:22
回复
举报
关于javabean的问题也是令我头疼的问题……但是用map会不会对代码可读性有影响,因为你无法看到实际的key值?
2015/01/27 08:35
回复
举报
更多评论
打赏
4 评论
7 收藏
1
分享
返回顶部
顶部