摘要:因工做忙,很多人只注重实现程序基本功能,而忽略编程规范,结果是写的代码很难读懂,甚至连阅读本身的代码都十分困难,这形成时间浪费,作事效率下降。而高手写出的代码都易领会,咱们如何作也能像他们这样呢?程序员
“首先是为人编写程序,其次才是计算机”,这是软件开发的基本要点,软件的生命周期贯穿于产品的开发、测试、生产、发布、用户使用、版本升级和后期维护等长期过程当中,只有易读、易维护的软件代码才具备生命力。编程
在实际的软件开发过程当中,多是因为工做很忙的缘由,不少开发人员只注重实现程序的基本功能,而忘记了编程规范,所以写出来的代码只能让计算机看懂,人要看懂很不容易。更有甚者,有些项目组为了赶进度,明确要求组员以实现产品功能为主,代码可以运行起来就能够了。低要求产生低质量的代码,既然“上头”都这样要求了,那还有必要写出“让人可以读懂”的代码吗?函数
进度是遇上了,产品也交付出去了,一切看来是OK的,但问题也就来了。前方产品故障频发,后方开发人员不停地扑火。这个时候,他们才发现以前别人写的代码很难读懂,甚至连阅读本身写的代码都十分的困难,真是悔不当初。若是开始的时候可以将代码写规范一点,文档配备齐全一点,何至于此?学习
“好”的代码和“很差”的代码给人的感受是千差万别。当咱们看到优美的代码时,会有一种想继续研究下去的欲望,甚至会有一种以为很享受的感受。相反,当咱们看到丑陋的代码时,就会咬牙切齿,由于它不只不利于阅读,还会浪费咱们不少时间,下降咱们作事的效率。测试
排版工整 VS 排版不工整编码
咱们打开一个代码文件的时候,最早看到的就是其排版怎样,这也是最直观的感受。当代码排版工整时,咱们很容易找出其条理和逻辑,会很快理解其到底要实现什么功能;而排版不工整的时候,咱们的眼睛会以为很累,进而影响了咱们的思惟。spa
命名规范 VS 命名不规范设计
在看完排版以后,咱们就会看到每一个函数和变量的命名。因为通常项目的代码行数都比较多,咱们不可能花不少时间去理解每一个函数和变量究竟是何用意,究竟是拿来作什么的。这就要求咱们在编码的时候,使函数和变量的命名具备自说明性,让它们本身告诉读者是作什么用的,而不是要别人花大量时间去研读后才能知道。这在必定程度上反映了开发人员的态度和专业化程度。生命周期
例如,一个处理消息的函数,命名为ProcessMsg和FunctionA,哪一个更好呢?显然是前者。咱们只要一看到其名字,就知道它是作什么用的。开发
再如,有三个变量,命名为ReturnValue、MaxNum、SumOfTwoNum,咱们就能一会儿明白它们有何用途。第一个变量用于做为返回值,第二个变量用来存放最大数,第三个变量用来存放两个数之和。这太明显了,你均可以不用去问元芳,本身就能搞清楚。而若是一样三个变量,命名为i、j、k,你就没法一眼看出它们到底有什么用,还要花大量的时间去阅读代码,甚至用几个小时的时间,你还不知道它们有何用途。这时,你的老大来问你事情作得怎样,你照实一说,他便说你无能。其实你是“哑吧吃黄连”,怪就怪别人没有把代码写好。
注释得当 VS 注释不得当
阅读代码,咱们还会注意到其是否有注释,注释多仍是少。这也是很直观的。
若是代码实现的功能较为复杂,那么添加注释是必不可少的。在恰当的地方,使用恰当的注释,可以让读者以为思路豁然开朗,他们会默默地在内心感激你。注释过少或没有注释是不行的,就像咱们吃饭同样。若是一碗青菜里面什么也没有,你会以为很乏味,没有食欲。若是放上一点辣椒酱,就会以为食欲倍增。无论你信不信,反正我是信了。
可是,注释也不能过多,不能将有用的代码掩盖住了,不可以喧宾夺主,让真正实现功能的代码成了衬托。
那么,咱们如何写出让“人”可以看懂的“好”代码呢?这个过程不能一蹴而就,要按部就班,要从我作起,从身边作起,不断地提高我的编程的境界。
我的认为能够考虑从如下几个方面入手:
第一,对新入职的员工进行软件编程规范的培训。在刚开始工做中的时候,让他们严格参照编程规范来编写代码。越早开展编程规范的训练,越是可以早地养成编写规范代码的习惯,写出的代码也就越清晰。顺便说句题外话,不少IT公司没有这方面的意识,只顾对企业文化进行培训,觉得这样就可以让员工的忠诚度增长。实际上,这只是个异想天开的作法。
第二,按期在项目组开展编程规范方面的主题讨论,强化你们的意识。老员工写出的代码对新员工有示范的做用,若是老员工写出的程序都是可读性不好的,那么新员工会怎么想呢?他们又会怎么作呢?不少开发人员天天只顾埋头苦干,却忽略了一些最基本的东西,所以能力很难再次获得提高。在编写完代码以后,不要就觉得事情作完了,还要编写一些项目文档,如详细设计文档、单元/集成测试文档等。在这些文档里面,把本身的思路写清楚,方便之后本身或他人查阅起来可以很快理解程序思路。
第三,开发人员严格按照公司制定的编程规范来书写代码。变量如何命名?函数如何命名?注释如何写?代码如何排版?这些都有严格的要求,做为一个合格的软件开发工程师,编写规范的代码是基本的要求。当咱们阅读到书写优美的代码的时候,是否是内心面会以为很爽?从某种程度上来讲,代码编写的规范程度能够体现一个程序员的态度和专业素养。
第四,项目组要严格执行同行评审流程。大部分IT公司为了提升产品的质量,都有一个叫作“同行评审”的流程,也就是让项目组成员相互检查各自的成果,你们相互学习、取长补短、共同提升。可是,多是中国文化的影响,你们都比较顾及面子,所以不肯意将对他人真实的想法表达出来,也使得“同行评审”流于形式。固然,也许你对别人的程序确实没有意见,那就另当别论了。对他人开诚布公地提意见并非冒犯,而是你们相互学习的一种很好的方式。
第五,最重要的是,我的要有编写规范代码的意识,要不断地学习各类提升编程能力的技术。无论别人对你怎么说,若是你本人不想把程序写好,那么纵使万般外力,又如何?程序员虽然工做很忙,但也要抽时间来学习新的技术,这样才不会被新技术淘汰掉。
“长风破浪会有时,直挂云帆济沧海”,对于不少人来讲,编写出可以让计算机读懂的程序就已经足够了,但若是想要成为一位优秀的软件开发工程师,那么就要力求写出让“人”可以很容易看懂并领会的代码。这是一个长期的过程,你们要有“万里长征”的准备,要有“愚公移山”的精神。