如何才能写出一手高质量优美的代码

怎么判断代码是否是优质量的代码呢?下面来简单对代码质量的问题进行一个介绍。


代码质量所涉及的5个方面,编码标准、代码重复、代码覆盖率、依赖项分析、复杂度分析。我们分别来看一下这5方面:

编码标准 :一般来说,公司都会有一份编码规范,类命名、包命名、代码风格之类的都会有所要求。

代码重复 :顾名思义就是重复的代码,如果代码中有大量的重复代码,就要考虑是否将重复的代码提取出来,封装成一个公共的方法或者组件。

代码覆盖率 :测试代码能运行到的代码比率,代码经过了单元测试了吗?是不是每个方法都进行了测试,代码覆盖率是多少?这关系到代码的功能性和稳定性。

依赖项分析 :代码依赖关系怎么样?耦合关系怎么样?是否有循环依赖?是否符合高内聚低耦合的原则?

复杂度分析 :如果代码中嵌套了很多层的if else,就会让人很难阅读。要相信越优秀的代码,越容易读懂。
 
那么如何才能编写出优质代码呢?我相信每个开发人员都会有自己的理解。这里整理了一些方法,供大家参考。
上海尚学堂 java培训 写代码必须从开始就规范,这些都是刚学编程开始必须养成的好习惯。

1、养成一个好习惯

养成一个良好的习惯对我们的工作来说非常重要,当然不仅仅是工作,其他方面亦然。养成一个好习惯需要你从一开始就去培养,并且持之以恒,坚持不懈。而我们下面讲的很多内容,或者说绝大部分内容都可以算做这个好习惯中的一部分。
 

2、规范你的代码

俗话说得好:”没有规矩,不成方圆”。代码遵循统一的格式规范,首先便于自己日后维护,其次便于移交他人。好的编码规范可以尽可能的减少一个软件的维护成本,毕竟很少有一个软件从开始到结束,都由最初的开发人员来维护。好的编码规范还可以改善软件的可读性, 不仅自己读起来会清晰明朗,他人也更容易理解新的代码,可以最大限度的提高团队开发的合作效率,这对一个项目团队来说非常重要。

3、合理注释代码

 永远不要过于相信自己的理解力!当你思路通畅,进入编程境界时,你可以很流畅的实现某个功能,但这种流畅可能是因为你当时正处于这种开发思路中,为了在再次阅读这段代码时,还能找回当初编写代码的思路,建议添加注释!如今,软件开发变成了协调作战,团队成员的沟通变得很重要,因此,一个人写的代码,需要被整个团队的其他成员所理解。而且,随着硬件设备的飞速发展,程序的可读性取代执行效率变成了第一考虑的要素。 程序注释是源代码的重要部分,对于一份规范的程序源代码而言,注释应该占到源代码的1/3以上。
 

4、不写过多参数方法

当你的方法参数超过5个时,你就要考虑你这个方法设计的是否合理了。真的需要这么多参数吗?是否可以精简?不但添加了理解难度,而且容易参数位置不正确出现运行异常,还不容易维护。如果实在必须,那么你也是到了必须改变的时候,封装对象来进行传递吧,这样不仅减少了参数个数,也为以后提供了无穷扩展的可能。同时使用者也不必去硬记参数的顺序。
 

5、不写重复代码

我想我们每个开发人员时时刻刻都要念上几遍来反复提醒自己。重复代码绝对是垃圾代码的第一特征,并且是最大的特征。复制粘贴的时候会很爽,但是一旦出错,意味着加倍的工作量和持续的不可控。不写重复代码的最高目标是不写两行一摸一样的代码,当然这仅存在理论的可能,我们需要做到是不写两份功能一致或相似的代码即可。
 

6、不做没有意义的事

我们开发的时候,常常会通过复制粘贴来实现一些功能,但是复制粘贴之后,会引入很多使用不到的东西,这些代码搁置在那边完全就是无意义的,可以删除。
另外我们经常会不经意的犯一些这样的错误:写if else if else 判断语句的时候,条件判断会出现重复,分支里面的代码可能永远不会执行等,这些其实都是我们在码之前没有理清思路导致的,也就是我们前面所说代码注释的重要性了。
过多的考虑将来的可能性:有的时候我们考虑代码的可扩展性时,会进入一个误区,也就是过犹不及的概念。带入了非常多当前并没有出现的可能性,这些内容可能永远不会用到,完全没必要在当前就写进去。
 

7、正确摆放代码

除了要实现功能外,还要考虑的事情非常多,正确摆放代码位置就很重要。检查方法,看里面的实现逻辑是否应该放在这个名称的方法中;检查类,看里面的方法是否应该放在当前类中;检查工程,看里面的类是否应该放在这个工程里面。一层层检查,该发现代码有多少问题了吧。这有时候就是人的过程性思维导致的,从大的方面来讲是我们抽象的不够。
 

8、多为你的使用者考虑

做任何事情如果没有服务的对象,也就失去了它本身的意义,同样,编码也是如此。如果你是做框架做产品的,那么你面对的就是普通开发人员;如果你是做项目的,那么你面对的就是我们通常意义上的客户。不管你面对的是什么对象,一个好的出发点非常重要:多为你的使用者考虑。也就说我们常说的,客户至上。这里我们拿编写工具方法为例:当你写出一个非常好的工具组件,最后你要考虑的肯定是开放的api接口,该开放哪些接口,接口的参数如何。这些都需要你从使用者的角度出发,你才能考虑的尽可能完善。不管是java里面的重载,还是设计模式里面的适配器,说的都是这个概念,为的都是让你的使用者尽可能的简单,少做事情。

9、拆卸你的代码

评价一份代码的优劣,其中一个非常重要的指标就是:是否易于拆卸。简单来说,就是它的耦合性。这里的耦合分为内耦合和外耦合。我们一般注意到的是外耦合,即我们的代码与外部代码之间。其实内耦合在某些时候更加的重要:我们的代码内部之间的关系。比如你做了一个持久化服务工具,里面涵盖了3块内容:增删改查、脚本操作、数据定义。整个持久化服务不依赖于外部的任何内容,或者依赖的层面会切割到一条线上,那么代表你这份代码的外耦合控制的非常好。这个时候想用到一个数据定义的功能,但是它想在里面加入非常多的个性化,也就是说他仅仅想要1/3的内容,这个时候你的代码如果能够很好的拆卸出来,而不破坏其他部分的平衡,你的内耦合才算达标。
 

10、合理利用检查工具

码完代码后,用上一些简单的静态检查工具,比如checkstyle、fingbug等,可以很方便的检查出你代码中格式、以及一些隐藏的漏洞。另外可以做下单元测试,让你的代码更健壮。
 

11、重构你的代码

重构能改善软件设计。
重构使软件更易理解。
重构有助于找到Bug。
重构有助于提高编程速度。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31494694/viewspace-2147560/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/31494694/viewspace-2147560/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值