如何写好优质代码

在现阶段我们写过不少代码,但是大部分代码质量都不高,一方面是缺乏编程方面的经验,在写代码时考虑的不够全面,另一方面也有可能是需求的更改导致代码的变动,这些都能影响代码的质量,而代码的质量会影响到产品的性能和好坏,接下来笔者与大家分享一些优质代码的标准。

优质代码就好比一个写作技巧高超的人所写的书,主旨贯穿全文,容易理解分章明确,要想写出好的代码,需要满足以下标准:

1.明确性 —— 代码能够做到不解自明。

2.可读性 —— 让其它开发人员能够看懂。

3.简洁性 —— 减少不必要的冗余。

4.效率性 —— 使代码运行速度快。

5.维护性 —— 容易修改升级。

代码标准

1 明确性

明确性,质量较好的代码,逻辑性相对比较的清晰,bug难以隐藏。要知道你所写的每一段代码是要干什么用的,有目的的去编写程序,使程序整体有逻辑,在一些方法和属性的命名时,尽可能的给予明了易懂的名称,就像方法名采用动名词组合一样,从而提高可读性。

2 可读性

可读性,不只是你自己,还要让其他开发、测试和运维人员能够对所写的代码一目了然,尽可能的减少或不写注释。在出手之前先思考,不要写出自己所不能理解的代码,那样只会加速系统的腐烂,做为一名程序员很有必要对自己所写代码进行思考和理解,从而对代码进行整理提高简洁性,好的代码本身就是最好的说明文档。

3 简洁性

代码中类和方法的长度要相对简短,简短的代码活的更长久,没有程序员不喜欢简短的代码,而且这样出来的产品问题相对就会较少。

Grady Booch说过:简洁的代码是简单、直接的;简洁的代码,读起来像是一篇写得很好的散文;简洁的代码永远不会掩盖设计者的意图,而是具有少量的抽象和清晰的控制行;可见代码的简洁性有多重要。

4 效率性

效率性,从一开始就要考虑程序性能,不要期待在开发结束后再做一些快速调整,在满足正确性、明确性、可读性等质量因素的前提下,设法提高程序的效率,在程序执行时让代码的执行速度较快,应以提高程序的全局效率为主,提高局部效率为辅。

5 维护性

所谓的维护性,就是指在系统发生故障后,在排查改正、改动、改进时的难易程度,维护性实际上也是对系统性能的一种不可缺少的评价体系。保证你所写的代码维护性相对较高,让你和其他人修改起来比较简单,而不是牵一发而动全身。

实例分析

沈阳数通畅联软件技术有限公司要求撰写代码均能够进行代码自注释,即代码中没有明文的注释说明,而是通过统一代码的命名规范保障(如:方法名称动名词共同组合)代码的可读性。如果代码逻辑较为复杂,必须要进行注释说明,则要求通过文档的形式进行记录,下面为大家介绍一些基础的代码规范。

1 拆分规范

>>>>工程拆分

平时的开发项目可能会拆分为两个或者多个工程,其中caslogin工程是包含在portal_wcm中的:

 

为什么我们要创建一个新的工程来开发呢案很清晰,这样做的话我们不需要担心影响到主工程的代码,也不会影响到其他人的代码,对于自己负责的模块能够有效的把控和管理,而一个项目下又分为多个模块,模块一般是根据功能划分出来的子集,便于并行开发、单元测试及代码管理,也就是说,划分模块是为了便于管理维护,以mdm为例:

 

 

mdm工程中功能分为了八个模块,在图中我们可以清楚的看出来,根据不同的功能划分模块,这样做的好处有以下几点:

1.功能模块相对完整独立,实现的逻辑性清晰,可读性强。

2.多人合作开发的分工更加明确,开发速度较快,同时软件质量高。

3.可以将模块公用接口提升,充分利用可以复用的代码。

4.可维护性强,避免修改一处代码牵扯许多模块,容易控制。

>>>>代码拆分

在一些方法中我们可能会遇到方法体过长的情况,一般来说高效的方法它的方法体不会过于太长,而太长的方法体,我们从中将其抽取分为两个方法来进行调用,并且修饰符应该为private不能公开化,这样做不仅能划分业务逻辑,还能减少阅读压力,美化代码,在下面样例中如果不将方法体进行拆分,那么代码就会变得很臃肿,阅读压力大大增加,而进行规划拆分后,就能很清晰明了的阅读:

 

2 命名规范

>>>>包名规范

命名在一个项目工程中也影响着代码的好坏,无论是包名、类名、方法名、变量名,命名的时候都应该考虑周全,实际开发过程中,我们的工程通常都会进行分包,其中一个功能模块可能是一个或多个包组成的,这也就要求我们对包进行划分同时还要规范命名,其中工程的项目的包名应以com.agileai.XXX来命名,其中项目名称和包名均为小写,例如:

 

>>>>类名规范

一个模块中包含了数据包和系统包,而在包中又包含很多类,类中有很多方法,方法中包含着变量,所有命名均符合驼峰命名法,下面列举出正确的类名命名方式:

 

图中我们可以看出,所有类的命名格式都应该是名词+动词或者名词,这是类名的命名方式,写好优质代码首先还是从最基础的命名开始。

>>>>方法名规范

 

任意打开一个类中查看方法名称其命名方式均为动词+名词或者是动词形式,方法名称具有明确的业务语义。

>>>>变量名规范

 

在日常编写过程中,无论是公共变量也好,方法中定义的变量也好,其命名均为名词,从上图中可以看出命名的好坏也影响着代码的质量。

3 格式规范

在重构时修改一些写死的全局变量,只供应一个方法使用,而避免其它方法不能调用的情况。下面为对接口的提升调用,接口提升后被其它包调用从而实现service的复用:

 

图中我们可以看出接口文件被提升到cxmodule包中,一般来说接口提升后都需要修改相关文件的导包路径。

>>>>DP代码规范

常见的循环中也会经常看到以下问题代码:

 

该循环会在循环体中不断的新建对象,正确的写法应该是:

 

这样写的好处能够优化内存,使内存中只有一个object在引用,有效节约了内存的使用率,从上可以看出,在我们平时编写代码时,一定要仔细,有时候看似不起眼的操作,却能起到很大的优化效果。还有常见的传参问题,我们在Handler中扩展的方法业务性相对来说比较强,所以在传参的时候需要传入明确的参数,而不是采用param来传值,错误示范:

 

正确示范:

 

其中查询方法的入参必须写清楚参数名称,命名也很重要,一般来说get查单条,find查多条,这些基础的知识点都是我们需要掌握的,规范的代码能够方便后续维护。

>>>>ESB代码规范

1 在ESB工程项目中,会根据系统或是业务功能分为多个工程,其名称都具有业务语义,例如:

 

2 在工程中中有很多流程,其流程名称也应该清晰明了具有业务语义,例如ERP系统的岗位同步流程:

 

3 Timer流程的使用应该是Timer流程定时调用Http流程,而不是Timer流程直接调用,具体方法流程:

错误实例:

 

正确实例:

 

4 创建流程时,每个流程节点都要简述其用途,全局变量的命名也要规范:

 

 

>>>> Portal配置规范

1 在新增功能菜单时,需要根据业务语义来填写编码,其中以“-”做为分隔:

 

2 模板一般根据所属导航的功能分组来创建,其命名需要明确以及满足驼峰命名法:

 

心得总结

软件是交付给用户体验的产品,而代码则是对软件正确且详细的描述,所以代码质量关系到产品的质量。因此,保证代码质量所投入的精力是值得的也是必要的。在现阶段的我们很少能够保障代码质量,那只能在后期对代码进行检查和重构,其实最好的习惯就是我们在编程时一边写代码一边优化,当然代码质量需要满足以上几项标准,如果只是单纯地为了实现功能而去编码,并未考虑代码质量的好坏,这样是很危险的;代码是一环扣一环的,从逻辑→可读→简洁→效率→维护,这些标准都决定了代码的好坏。

从看到学再到写,在提升自己代码能力的同时,还要注意代码的质量优化,一个好的程序,是由好的代码模块组合而成的,而在我们写程序的时候就应该多加考虑和设计,这样不仅是对代码负责也是对自己负责,写好优质代码是一个程序员应尽的责任。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年1月21日
下一篇 2019年1月21日

相关推荐