Java编程规范,代码验收标准
引⾔:
这个标准是衡量代码本⾝的缺陷,也是衡量⼀个研发⼈员本⾝的价值。
军规⼀:【避免在程序中使⽤魔⿁数字,必须⽤有意义的常量来标识。】
军规⼆:【明确⽅法的功能,⼀个⽅法仅完成⼀个功能。】
军规三:【⽅法参数不能超过5个】
军规四:【⽅法调⽤尽量不要返回null,取⽽代之以抛出异常,或是返回特例对象(SPECIAL CASE object,SPECIAL CASE PATTERN);对于以集合或数组类型作为返回值的⽅法,取⽽代之以空集合或0长度数组。】
军规五:【在进⾏数据库操作或IO操作时,必须确保资源在使⽤完毕后得到释放,并且必须确保释放操作在finally中进⾏。】
军规六:【异常捕获不要直接catch (Exception ex) ,应该把异常细分处理。】
军规七:【对于if … else if …(后续可能有多个else if …)这种类型的条件判断,最后必须包含⼀个else分⽀,避免出现分⽀遗漏造成错误;每个switch-case语句都必须保证有default,避免出现分⽀遗漏,造成错误。】
军规⼋:【覆写对象的equals()⽅法时必须同时覆写hashCode()⽅法。】
军规九:【禁⽌循环中创建新线程,尽量使⽤线程池。】
军规⼗:【在进⾏精确计算时(例如:货币计算)避免使⽤float和double,浮点数计算都是不精确的,必须使⽤BigDecimal或将浮点数运算转换为整型运算。】
军规说明:
军规⼀:【避免在程序中使⽤魔⿁数字,必须⽤有意义的常量来标识。】
说明:是否是魔⿁数字要基于容易阅读和便于全局替换的原则。0、1作为某种专业领域物理量枚举数值时必须定义常量,严禁出现类似NUMBER_ZERO的“魔⿁常量”。
军规⼆:【明确⽅法的功能,⼀个⽅法仅完成⼀个功能。】
说明:⽅法功能太多,会增加⽅法的复杂度和依赖关系,不利于程序阅读和将来的持续维护,⽆论是⽅法还是类设计都应符合单⼀职责原则。
军规三:【⽅法参数不能超过5个】
说明:参数太多影响代码阅读和使⽤,为减少参数,⾸先要考虑这些参数的合理性,保持⽅法功能单⼀、优化⽅法设计,如果参数确实⽆法减少,可以将多个参数封装成⼀个类(对象),同时考虑在新的类(对象)中增加相应的⾏为,以期更符合OOP。
军规四:【⽅法调⽤尽量不要返回null,取⽽代之以抛出异常,或是返回特例对象(SPECIAL CASE object,SPECIAL CASE PATTERN);对于以集合或数组类型作为返回值的⽅法,取⽽代之以空集合或0长度数组。】
说明:返回null会增加不必要的空指针判断,遗漏判断也会导致严重的NullPointerException错误。java爱心代码编程简单
军规五:【在进⾏数据库操作或IO操作时,必须确保资源在使⽤完毕后得到释放,并且必须确保释放操作在finally中进⾏。】
说明:数据库操作、IO操作等需要关闭对象必须在try -catch-finally 的finally中close(),如果有多个IO对象需要关闭,需要分别对每个对象的close()⽅法进⾏try-catch,防⽌⼀个IO对象关闭失败其他IO对
象都未关闭。推荐做法如下:
Connection jdbcConnection = null;
Statement stmt = null;
try
{
........
}
catch(SQLException e)
{
........
}
finally
{
if(stmt != null)
{
try
{
stmt.close();
}
catch(SQLException e)
{
logger.log(Level.WARNING,"异常说明", e);
}
}
if(jdbcConnection != null)
{
try
{
jdbcConnection.close();
}
catch(SQLException e)
{
logger.log(Level.WARNING,"异常说明", e);
}
}
}
军规六:【异常捕获不要直接 catch(Exception ex) ,应该把异常细分处理。】
说明:catch (Exception ex)的结果会把RuntimeException异常捕获,RuntimeException是运⾏期异常,是程序本⾝考虑不周⽽抛出的异常,是程序的BUG,如⽆效参数、数组越界、被零除等,程序必须确保不能抛出RuntimeException异常,不允许显⽰捕获RuntimeException异常就是为了⽅便测试中容易发现程序问题。
军规七:【对于if … else if …(后续可能有多个elseif …)这种类型的条件判断,最后必须包含⼀个else分⽀,避免出现分⽀遗漏造成错误;每个switch-case语句都必须保证有default,避免出现分⽀遗漏,造成错误。】
军规⼋:【覆写对象的equals()⽅法时必须同时覆写hashCode()⽅法。】
说明:equals和hashCode⽅法是对象在hash容器内⾼效⼯作的基础,正确的覆写这两个⽅法才能保证在hash容器内查对象的正确性,同时⼀个好的hashCode⽅法能⼤幅提升hash容器效率。
军规九:【禁⽌循环中创建新线程,尽量使⽤线程池。】
军规⼗:【在进⾏精确计算时(例如:货币计算)避免使⽤float和double,浮点数计算都是不精确的,必须使⽤BigDecimal或将浮点数运算转换为整型运算。】
说明:浮点运算在⼀个范围很⼴的值域上提供了很好的近似,但是它不能产⽣精确的结果。⼆进制浮点对于精度计算是⾮常不适合的,因为它不可能将0.1——或者10的其它任何次负幂精确表⽰为⼀个长度有限的⼆进制⼩数。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。