一般来说代码质量由以下五个方面决定:编码标准、代码重复、代码覆盖率、依赖项分析、复杂度分析。
我们分别分析一下这五个方面。
编码标准:一般每个公司都会有一套自己的编码规范,规范都会详细的要求类命名、包命名以及代码风格等。
代码重复:简单来说就是你需要规避大量重复代码,如果说你发现你有大量的重复代码,那就要考虑把这部分代码提取出来单独的封装成公共的方法或者组件了。
代码覆盖率:要清楚你的测试代码占总代码的覆盖率,这关系到代码的功能性和稳定性。
依赖项分析:代码依赖关系怎么样?耦合关系怎么样?是否有循环依赖?是否符合高内聚低耦合的原则?
复杂度分析:代码一点要做到至简,尽量规避多层循环或者多层的if else。
那么如何才能编写出优质代码呢?我相信每个开发人员都会有自己的理解。这里整理了一些方法,供大家参考。
1、 养成一个好习惯
有一个良好的习惯是很有必要的,这不仅仅是针对我们的工作,其他方面也是同样的道理。我们后面讲的内容大部分都可以归于养成一个好习惯的具体实现。
2、 规范你的代码
代码拥有统一的格式和规范,既便于代码的逻辑清晰,又便于维护,好的编码规范可以尽可能的减少一个软件的维护成本,甚至在将来移交给他人时,也能更容易理解你的代码,毕竟很少有一个软件从开始到结束,都由最初的开发人员来维护。
3、 不写过多参数方法
当你的方法参数超过5个时,你就应该考虑是否有无用参数了,过多参数不仅增加了理解难度,还容易出现运行时异常,更不利于维护。如果你觉得你必须要有这么多参数,那就把参数封装成对象吧,这样既方便管理参数,又提供了扩展性。
4.不写重复代码
当你的方法参数超过5个时,你就应该考虑是否有无用参数了,过多参数不仅增加了理解难度,还容易出现运行时异常,更不利于维护。如果你觉得你必须要有这么多参数,那就把参数封装成对象吧,这样既方便管理参数,又提供了扩展性。
5. 不写重复代码
重复代码=垃圾代码。如果你发现你有很多的重复代码时,正确的做法是把这部分代码提取出来封装成公共方法或者工具。
6、不做没有意义的事
我们开发的时候,常常会通过复制粘贴来实现一些功能,但是复制粘贴之后,会引入很多使用不到的东西,这些代码搁置在那边完全就是无意义的,可以删除。如果你现在也在学习java,在入门学习java的过程当中缺乏系统的学习教程,或者说缺乏一个交流技术的地方,你可以申请加入我的Java学习交流qun:前面六四一,中间一二一,最后九四八。里面还有我这几年整理的java学习手册,面试题,开发工具,PDF文档教程,你可以自行去下载。
7、正确摆放代码
除了要实现功能外,还要考虑的事情非常多,正确摆放代码位置就很重要。检查方法,看里面的实现逻辑是否应该放在这个名称的方法中;检查类,看里面的方法是否应该放在当前类中;检查工程,看里面的类是否应该放在这个工程里面。一层层检查,该发现代码有多少问题了吧。这有时候就是人的过程性思维导致的,从大的方面来讲是我们抽象的不够。
8、多为你的使用者考虑
做任何事情如果没有服务的对象,也就失去了它本身的意义,同样,编码也是如此。如果你是做框架做产品的,那么你面对的就是普通开发人员;如果你是做项目的,那么你面对的就是我们通常意义上的客户。不管你面对的是什么对象,一个好的出发点非常重要:多为你的使用者考虑。
9、合理利用检查工具
码完代码后,用上一些简单的静态检查工具,比如checkstyle、fingbug等,可以很方便的检查出你代码中格式、以及一些隐藏的漏洞。另外可以做下单元测试,让你的代码更健壮。
10、重构你的代码
重构能改善软件设计。
重构使软件更易理解。
重构有助于找到Bug。
重构有助于提高编程速度。