美国上市公司,专注Java培训21年

正确理解Java代码编写规范


正确理解Java代码编写规范

本文从Java代码编写的初期到结尾,做了一次整体的总结,希望对初学者有帮助。

1、命名很重要

一个错误的命名会很误导人,不良的命名,对于阅读代码的人来说很纠结。一个良好的命名对自己也有很大的帮助。

我个人命名的变量都比较长,一般是单词的全称,这样代码读起来易懂,有些缩写你根本不知道它代表的单词是什么,除了像id代表identifier,org代表organization这些大家常见的缩写命名。

命名一个方法时候,最好能让大家见名知意,看到名字就能猜出你的功能,而不需要去看方法的注释,甚至是读源码来了解你的功能。

2、注释很重要

写一个方法时可以先把这个方法的功能、算法原理交代一下,以后自己或者是其他人维护你的代码时候可以很方便,对于易出错的部分加注释提醒。

3、用class类型

写方法的时候的参数,少用基本类型的组合,而用class类型

比如写一个查找用户的方法queryUser(int age)

最开始的业务需求是根据年龄来查找用户,后来业务规则发生了变化,你可能需要根据年龄和性别来查找用户,于是你又改成了这样queryUser(int age, intsex),假设用0代表男,1代表女(其实更好的实现是用枚举来表示男女);

说不定你哪天的业务又变化了,需要根据年龄、性别、家庭住址来查询,于是乎你又改成了这样queryUser(int age, int sex, String address)。

如果你当时设计的方法是:queryUser(User user)传入的参数是一个User类呢,那该多好啊,你根本不需要改接口。

在实际项目开发中改一个接口的成本还是挺大的,实际项目开发中为了达到层次清晰、解耦的目的,后台分了好多层,action、business、dao其中dao还有分了dao接口和实现,一个接口修改得牵动多少地方。

而当初设计的接口传递的是User对象,那么你的代码可以简单的增加几行就能达到了目的,而不需要修改那么多的接口,一边修改一边纠结。

4、少复制、粘贴代码

同样的代码不要粘来粘去,当时写的时候确实是快了,可是以后需要修改的时候可就慢多了。

更可怕的是你要修改多处,结果你只修改了一处,而你自己却以为万事大吉了,说不定哪天就蹦出个bug来。应该把这些公共的代码提取成一个class或者是一个方法。

5、一个方法中不要写太多的代码

一个方法中写好多代码,写的时候确实是很方便,很快,更好的办法是把一个大的方法分解成几个小的方法,然后在主方法中调用其他子方法。

如果把所有的逻辑都写在一个方法中,当需求发生变化的时候,再要修改那就慢多了。

我自己写代码的时候,刚开始写某个功能的时候很慢,有几种实现很纠结到底用那种实现,思考半天,给个变量起个名儿也得半天,有时候还不知道对应的英文单词,好吧,再打开桌面词典,查查单词。

写个方法时也得纠结半天,先想好方法的名字,然后是参数,还有返回值。

一小段逻辑的代码可以提取出一个private方法,然后在一个方法中调用好几个私有的小方法。

这样读代码的人读起来也轻松,日后需求发生变化了,你的这些个小的逻辑代码块儿只要重新组合下,就又能满足新的功能,可以复用。

我自己写一个新功能的时候,第一次写很慢,如果是这个新功能发生了变化,需要修改代码,修改起来非常快,许多代码块儿都是现成的,只需要重新组合一下方法的调用即可。

6、添加设计文档

增加一个新的功能模块时最好有个设计文档,先把方方面面都考虑周全了,设计好了再编码实现。

如果一开始就有个设计文档,能把方方面面都考虑周全,实现起来就容易多了,实现的代码还能优雅些。

为了达到最终的目的,可能中间要走些弯路,如果增加的功能多了,每次实现都走一些弯路,系统最终会变的臃肿不堪。

如果推倒重来,以前的功夫就都白费了,不光是编码,还有测试部门的测试,有时时间也不允许重构,再说了重构还有风险,这其中的代价还是挺大的。

所以新增功能一定要把需求搞清除,有个良好的设计文档,考虑周全了再编码实现。

最后在向SVN提交代码时先做个功能测试,然后没问题了,再做个codereview。

感谢大家阅读由java教程分享的“正确理解Java代码编写规范”希望对大家有所帮助,更多精彩内容请关注Java培训官网

免责声明:本文部分内容由小编转载自网络,旨在分享提供阅读,版权归原作者所有,如有侵权请联系我们进行删除


【免责声明】本文部分系转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,如涉及作品内容、版权和其它问题,请在30日内与我们联系,我们会予以重改或删除相关文章,以保证您的权益!

Java开发高端课程免费试学

大咖讲师+项目实战全面提升你的职场竞争力

  • 海量实战教程
  • 1V1答疑解惑
  • 行业动态分析
  • 大神学习路径图

相关推荐

更多
  • java语言中,char 类型变量是否能保存一个汉字?
    java语言中,char 类型变量是否能保存一个汉字?
    在 Java 语言中,可以使用 char 类型的变量来存储单个的字符,请问是否能用 char 类型的变量来存储一个汉字呢? 详情>>

    2015-10-15

  • 有史以来最牛的一张程序员职业路线图!
    有史以来最牛的一张程序员职业路线图!
    最近在琢磨程序员到底路在何方,经过不断的自虐和代入,终于在迷雾森林中得图一张,看之豁然开朗。独乐乐不如众乐乐,share了: 详情>>

    2018-05-22

  • java中变量和常量有什么区别?
    java中变量和常量有什么区别?
    在使用 Java 语言进行程序设计时,经常需要用到常量和变量来存储信息。请简单叙述变量和常量有什么区别? 详情>>

    2015-10-15

  • short 和 char 类型的取值范围各是多少?
    short 和 char 类型的取值范围各是多少?
    在使用 Java 语言进行程序设计时,经常需要使用 short 型和 char 型存储数值,请简述short 型和 char 型的取值范围各是多少? 详情>>

    2015-10-15

  • Java开班时间

    收起