`
weihong01267
  • 浏览: 51655 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

转(华为Java编程军规,每季度代码验收标准)

    博客分类:
  • java
 
阅读更多

 

华为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错误。

 

军规五:【在进行数据库操作或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的其它任何次负幂精确表示为一个长度有限的二进制小数。

敏捷测试团队,不再仅仅是在coding之后。而是和研发人员贯穿在需求分析、规格说明、自动化单元测试、自动化验收测试、静态代码分析、技术债等环节中。所以敏捷项目必定在将来效率的趋势下成为主流。
 
 
标签: java华为开发
好文要顶 关注我 收藏该文  
0
0
 
 
 
posted @ 2014-01-10 14:19 一十一. 阅读(4146) 评论(4编辑 收藏
分享到:
评论

相关推荐

    华为JAVA编程规范、编程军规

    10. **代码审查**:华为编程军规可能包含代码审查流程,通过同行评审发现潜在问题,提升团队整体编码水平。 以上只是部分基于华为JAVA编程规范的知识点,具体细节需要参考《JAVA编程军规.doc》《JAVA十大低级错误....

    华为java编码军规

    华为java编码军规,经典编码风格规范。极大提高你的编码能力

    华为java编程军规

    华为 Java 编程军规是衡量代码本身的缺陷,也是衡量一个研发人员本身的价值。该军规共十条,涵盖了编程中的各种细节,旨在提高代码的可读性、可维护性和可靠性。 军规一:避免在程序中使用魔鬼数字,必须用有意义的...

    华为JAVA编程规范汇编.pdf

    华为JAVA编程规范汇编.pdf

    华为JAVA编码规范.pdf

    华为JAVA编码规范.pdf是华为公司编写的JAVA编程语言编码规范,旨在提供一个统一的编程风格和代码组织方式,以提高代码的可读性、维护性和可重用性。该规范涵盖了编程语言的基本结构、命名规则、代码组织、注释、编程...

    华为Java代码格式

    华为Java代码格式format.xml华为Java代码格式format.xml华为Java代码格式format.xml

    华为Java编程规范

    在编码排版规范方面,华为推荐的Java编程规范强调了使用统一的代码格式来提高代码的可读性。具体规则如下: 1. 缩进风格:程序块应使用4个空格进行缩进,避免使用制表符(TAB)以保证在不同开发环境下的兼容性。 2...

    华为JAVA编程规范

    华为JAVA编程规范是华为公司制定的编程规范,旨在提高代码的阅读性和规范性。该规范涵盖了编程风格、命名惯例、编程实践等多方面的内容,旨在提高代码的可读性、可维护性和可扩展性。 1. 排版 华为JAVA编程规范...

    华为Java语言编码规范.doc

    华为Java语言编码规范.doc 本文档介绍了华为Java语言编程规范的相关知识点,涵盖...华为Java语言编程规范旨在确保代码的可读性、可维护性和可扩展性,涵盖编程规范、命名规范、注释规范、编码规范、JTEST规则等内容。

    华为java安全编码规范考试3.1.md

    华为java安全编码规范考试3.1 血与泪整理除的答案,当前时间保证是最新的,基本所有题都能找到。有几题答案没写出来,但是写了所有的错误答案…………排除法

    阿里华为Java编程规范(开发手册)

    总的来说,《阿里华为Java编程规范(开发手册)》是一份全面的编程指南,旨在通过统一的编码标准和最佳实践,提升软件开发的效率和质量。开发者应深入学习并遵循这些规范,以打造高质量的Java应用。

    华为Java语言编程规范

    《华为Java语言编程规范》是华为技术有限公司制定的一份企业技术规范,旨在为Java程序员提供一套标准的编码规范,以提高代码质量和可读性。这份规范涵盖了排版规范和注释规范等多个方面。 排版规范是Java编程的基础...

    2018华为软件精英挑战赛复赛代码 by java()

    这个标题表明了一个参赛者在2018年的华为软件精英挑战赛复赛中使用的Java代码,这是一场面向IT专业人才的比赛,旨在考验参赛者的编程技能、算法理解和问题解决能力。 【描述】提到的“岭回归+均值+去噪预测结合比例...

    华为代码规范代码模板

    这套规范不仅适用于Java语言,也可能覆盖其他编程语言,以确保代码的一致性和专业性。 首先,我们要理解“代码模板”。代码模板是一种预定义的代码结构,可以自动加载到文件或类中,以帮助开发者快速编写符合规范的...

    java华为编程规范.rar

    Java编程规范是软件开发中的重要指导原则,它旨在提高代码质量、可读性、可维护性和团队协作效率。华为作为全球领先的ICT解决方案提供商,对于Java编程有着严谨的内部规范,以确保其软件产品的稳定性和可靠性。以下...

Global site tag (gtag.js) - Google Analytics