开发中忽略的问题(1)

声明:本文仅限用于学术交流,引用或转载本文时请注明出处!

已经在在公司实习了两个月了,虽然自己做的是老项目的重构,特别讨厌看老项目的代码。但还是要对实习中的问题总结一下。

其实自己每周最喜欢的就是参加线下代码审查会,在这里才能发现自己的问题,同时也可以通过别人的问题,来警示自己,提高自己的编程水平。

代码风格

在我们组有着严格的编码规范,通过几周tl的坚持,我们组的风格基本已经统一。(当我在看老项目的代码时真的想砸电脑,每一个模块不同的人编写都有不同的风格,每一次都要从头到尾重新梳理业务逻辑,浪费时间。)

魔鬼数字

最近在线下代码评审的时候,听见teamleader说了一个词魔鬼数字,感觉非常有意思,这也是我自己重来没有注意过的问题。
魔鬼数字的定义:直接写死在程序代码中,且不是用来给变量赋值的数字。

1
2
3
4
5
6
7
8
9
10
11
12
13
	int itemCount=10;                  // 这可以认为不是魔鬼数字 ,但应该有注释
    int itemSize=5;                    //   这可以认为不是魔鬼数字 ,但应该有注释

    // 一系列处理逻辑后

    if ((storageManager.getCapacity() - itemCount*itemSize) < 1024){   //1024 是魔鬼数字
          storageManager.expandCapacityBy(512);     //512 是魔鬼数字
     }
---------------------
作者:jinxfei
来源:CSDN
原文:https://blog.csdn.net/jinxfei/article/details/4618246
版权声明:本文为博主原创文章,转载请附上博文链接!

魔鬼数字的危害:
魔鬼数字不会带来程序逻辑的错误,它主要影响代码可读性,读者看到的数字无法理解其含义,从而难以理解程序的意图。
当程序中出现的魔鬼数字量过多时,代码的可维护性将会急剧下降,代码变得难以修改,并容易引入错误。

解决方案:
1、将魔鬼数字定义为常量
2、将使用魔鬼数字的逻辑封装为方法,增加注释
魔鬼数字部分转自拥抱质量:代码质量 之 魔鬼数字

Object.equals()方法

Java中的对象都继承于Object,我们来看一下Object.equals()方法的源码

1
2
3
4

public boolean equals(Object obj) {
return (this == obj);
}

可以看见euqals()方法比较的时两个对象的引用地址是否相同,相同即两个对象相等。当一个对象为空时调用equals()方法就有可能出现异常。

finally中的关闭流

在finally中所有关闭流都必须使用try-catch,防止中间某个关闭出现异常,关闭失败。

==和equals()使用

除基本类型外,其他比较都是用equals()

service层中多次删除/插入/修改

只要时多次修改数据库时都需要使用事务

wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客!

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器