在软件开发过程中,代码的质量起着至关重要的作用。然而,高质量的代码并不等于不容易出错的代码,除了“好用”之外,还要“好看”。所谓“好看”,指的就是可读性要好,不光自己能看懂,别人也能理解,这样才会易于其他人的阅读或者接手。
而高可读性的代码则取决于开发人员在撰写代码时是否注意代码规范,本篇文档将对代码规范进行详细的介绍,希望对开发人员起到一定的帮助作用。
什么是规范本篇文档将从四个角度出发去探讨代码规范,分别为:类名规范、方法规范、变量规范和代码逻辑。前三个规范更多是在强调命名的规范性。
1.命名方法
首先介绍一下编程中几种常见的命名方法,这里一共列举了五种:
1.匈牙利命名法
匈牙利命名法是一种编程时的命名规范。基本原则是:变量名=属性 类型 对象描述,其中每一对象的名称都要求有明确含义,可以取对象名字全称或名字的一部分,主要基于容易记忆容易理解的原则。匈牙利命名法的特点是前缀。用前缀标明变量的类型。前缀后面的单词首字母大写,其他字母小写。让人一看到变量名就能知道这个变量的类型。
2.camelCase命名法(驼峰式命名)
开头单词小写,后面单词首字母大写。在Java的官方标准中,Camel命名法被作为主要命名法。使用较为普遍,很多人习惯这种命名方法。示例:userName
3.PascalCase命名法(帕斯卡命名)
与camelCase命名类似,所有单词首字母大写。有时会有人称为大驼峰式命名。使用很普遍,变量名,方法名等。示例:UserName
4.Kebab-case(短横线命名)
单词以 ‘-’ 短横线连接,常见的class命名方法。示例:user-name
5.UnderScoreCase(下划线命名)
单词以 ‘_’ 下划线连接,常见文件名的命名。示例:user_name
2.类名规范
1.Java中的类名遵循驼峰命名的原则,即若一个类名由多个单词组成,那么除了首字母大写以外其余字母均为小写。
2.由于类代表的是对象,所以在单词选择上尽量选择名词。
3.为了便于查找,类的命名要容易理解,尽量做到一看到这个类名就能知道这个类代表的内容。
4.例:DataModeTaskList
3.方法规范
方法规范通常分为两种:service层和controller层,两者可能具有类似的作用,但在命名上通常会加以区分。
1.Service层,通常指的是增删改查,由于操作的是数据库,所以在命名上则使用insert、 delete、update、select 关键字来作为首个单词后面通常会再接一个名词。例如:insertRecord
2.Controller层,通常指的是一些按钮功能对应的方法,或者为了获取某些指定的值而写的方法。同样,这些方法在命名上遵循驼峰命名的原则。在单词选择上一般为动词加名词的组合,动词即该方法对应的动作,例如:保存-save、删除-delete、提交-submit等。后面的名词通常情况下代表的是操作的数据,例如:record、data等。
4.变量规范
1.通常以字母开头且遵循驼峰命名原则。
2.要能清楚地表达出命名的含义。
3.一些默认的、大家熟知的可以用缩写,例如:application-app、string-str、number-num。
4.命名不可以和Java关键字产生冲突。常见的关键字有:public、private、new、try、this、import等。
5.代码逻辑
上面介绍了关于命名的规范,而在代码逻辑上同样也需要做到规范性,否则可能会影响产品的使用效果。在编写时,大致遵循以下几个原则
1.不要把操作数据库的方法写在循环里。
2.操作较频繁的代码可以独立出来成为一个方法,然后通过本类调用的方式。
3.尽量减少代码嵌套的层次,便于理解。
4.尽量做到代码复用,减少扩展的次数。
5.不同的方法之间间距适当,例如空格一行。
6.每个if、for等语句都不要省略大括号。
规范的目的上面的内容中介绍了很多需要规范的点,接下来这部分将说明为什么要做到代码规范。主要从维护,理解和产品规范三个角度出发来进行说明。
1.易于理解
对于很多初入软件开发行业的新手来说,由于基本功不扎实且项目经验少,通常都会需要一段较长的时间来学习,这个过程中避免不了要看很多代码。而逻辑清晰,条理清楚的代码会让学习的人,更容易理解吸收其中的逻辑还有相关的知识点。相反不规范的代码会降低学习效率,甚至会影响学习的质量。
2.易于维护
每一款产品在发版之后都会经历不断地升级打磨,不管是对发现的bug进行修复,还是新功能的加入。这些事情都不会由个人来做而是一个团队,每个人负责不同的模块,甚至同一模块也会经过不同人的手。在这种情况下,定位相关类或者方法、分析问题、理解代码等,这些操作的难易程度就取决于代码是否规范。代码足够规范,维护起来就会越容易越高效。
3.产品规整
对于有着多套产品的公司来说,不同的产品之间往往会有着类似的风格。在这种情况下制定统一的代码规范就显得尤为重要了。通过统一的标准不仅可以实现不同产品之间代码的重复使用率,也可以在新产品的开发过程中提高开发效率,实现产品的快速迭代、稳定升级以及高效开发。
规范的好处代码的规范不管是在公司内部还是整个行业内都是一件很重要的事,整个行业都这么做,自然是有其中的道理。规范的代码不管是对团队间相互协作去做一些产品升级或者是bug修复还是对于个人能力的提升都有很大的帮助。另外统一的代码规范标准,也可以让公司的产品更加体系化。
1.促进团队
一个项目大多是由一个团队开发来完成的,如果没有统一的代码规范,那么每个人的代码必定会风格迥异。且不说会存在多人开发一个模块的情况,就算分工清楚,等到要整合代码的时候容易出错。统一的规范标准,使得代码可读性大大提高了,任何一个人看到任何一段代码都不会难以理解。所以很显然,制定代码规范标准是一件很有必要的事情。
2.减少bug
很多时候,代码本身逻辑并不复杂,可越是简单越容易测试出bug,且数量繁多。这种现象很大程度上是由于代码不规范导致的,而且也很难找到bug的起因。相反在规范的代码开发中,bug不但有效减少,查找bug也变得轻而易举。
3.产品稳定
对于产品特别是有着多套产品的公司来说,各个产品之间都有相同的风格,这样不仅可以使自己的产品联系得更加紧密,同样也可以对外传递出企业的文化和价值观。那么制定一套统一完整的代码规范十分必要。通过统一的标准,可以提升产品之间的契合度,提升企业产品的竞争力,同时也可以实现不同产品之间代码的复用率,方便产品的维护、升级,特别是在新产品开发的过程中,可以大大提升开发的效率,实现产品的快速迭代、稳定升级以及高效开发。
4.提升能力
规范的代码除了可以使团队工作进展得更顺利外,对个人的能力提升也是很有帮助的。养成良好的编码习惯可以大大提高工作效率。当想要查找一段代码时,如果整个页面的代码都很乱没有条理,一些方法或者变量的命名不够清楚,可能就需要花好长时间才能找到想要找的那段代码,甚至还不能确定找的是否正确;同时,规范的代码也可以减少代码完善以及bug修复这一类的工作,这样就可以省下很多时间去做一些功能完善或者开发工作。另外,当自己拥有了良好的代码规范能力后,在理解别人的代码上也会容易很多,这也是能让自己快速提升能力的方法之一。
规范的方法本篇文档已经介绍了规范的标准和规范的好处,下面将介绍如何做才能写出规范的代码。
1.规范代码
代码方面,相关的规范标准在文章中的第一部分中已经提到了,在这里总结一下。首先是命名规范,命名规范包括类名规范、方法规范、和变量规范,这个其实是需要长时间的练习,前期可以多看,多模仿别人写的标准代码,这样这些标准就自然而然地刻在脑子里了。其次关于代码逻辑方面涉及到的知识比较多,需要个人专业知识的积累量。除了平时多看一些产品底层代码外,也可以去网上查找一些相关资料进行学习。另外网上也有很多关于代码规范相关标准的文档,平时多多浏览。
2.规范产品
对于拥有多套产品的公司来说,想实现产品的体系化,就要提高不同产品之间的代码复用率,这样可以保持产品大体风格是一致的。所以制定一套统一的规范标准是很必要的,如此便可以让产品看起来更统一、更规整。
3.规范自身
想要做到代码规范并非一朝一夕,首先需要让自己养成这种规范的意识,每次开发都要求自己遵守编码规范,久而久之就会形成一种习惯,写代码时不自觉就会遵守。另外一定要坚持每天都写代码,很多东西都不是一下子就可以掌握的,编码标准那么多条,覆盖面又那么广,只有坚持多写、多看才能更熟悉。代码熟悉了,开发效率自然会提高,代码看起来也很整洁,bug处理的次数也会减少。总而言之,想要养成良好的编码习惯需要严格要求自己。
心得和总结都说字如其人,其实在我看来写代码也一样。抛开功能可以正常使用之外,“面相”也同样重要,就像我们每天早上都要洗脸刷牙,如果蓬头垢面的自己也会接受不了。代码同样如此,干净整洁的代码不仅自己看起来觉得舒服,别人读起来也会容易。相反如果整片代码格式混乱,相信任何人都没有看下去的欲望。
1.规范总结
首先命名要规范,要掌握常见的命名方法,结合公司的命名规范应用到日常开发中。常见的命名规范有类名规范、方法规范、变量规范;其次注意代码格式,比如:空格、标点这些;最后就是注意自己的逻辑性,避免一些不合理的编码习惯。
2.方法总结
多看标准代码,注意格式是怎样的,还需要做到上面提到的那些编码规范,但是这个就需要长时间的练习了,坚持写才能把那些规范记在脑子里,才能形成所谓的习惯。最后就是代码的逻辑性了,这个需要很多的经验积累,参与的项目多了,做的产品多了,自己的专业能力提上来了,逻辑感自然也就好了。当然除了平时工作中接触到的之外,也可以去一些开源平台上找一些小项目利用周末时间做一做,强化一下自己的编码能力。
3.个人总结
规范代码除了方便团队协作开发以及提高工作效率外,更能体现程序员的个人能力,像大师级人物写的开源项目代码都是极其规范的。虽然说规范也不意味着代码水平就一定很高,但至少可以让别人读起来更容易理解,也可以在规范的过程中提升自己的逻辑能力和代码感觉。
最后,规范是一种习惯,而最难的往往就是养成习惯。但是没有什么难题是做不到的,世上无难事,只要肯攀登!
本文由@数通畅联原创,欢迎转发,仅供学习交流使用,引用请注明出处!谢谢~
,