一、为啥要有代码规范?
1.代码规范可以加快团队间的协作
对于每个项目的开发,大多数是由一个团队来完成的,团队内部的人来自四面八方,每个人的代码风格也大不相同,如果没有统一的代码规范,那么代码的可读性会大大降低,会严重影响团队的开发效率。这就好比几个人在一起交流,小王用地道的四川话,小李用地道的湖南话、小王用浓厚的广东话,试想一下,他们相互之间能畅快的交谈吗?显然不能,他们可能各自都听不懂对方的口音,假如他们都改用普通话,那么问题不就解决了?如此可见,代码规范就好比我们的普通话,统一标准,才能加快团队间的协作。
2.代码规范可以降低维护成本
作为程序员,我想90%的人都应该维护过别人的代码,当你第一眼看到别人的代码时,你的心情是怎么样的?要么欣喜,要么沮丧!欣喜的是,你拿到代码,能很快上手,花费很短的时间就能把一个新加的功能给做好;沮丧的是,你看到代码头就大,可读性差、模块重用性不高,变量命名不规范等,一下子就丧失了信心,再加上领导隔三差五的催赶进度,是不是很崩溃?回过头来,再说代码规范为啥可以降低维护成本,首先,代码规范增加了代码的可读性,提高了代码维护的效率,缩短了开发周期,不是节约了成本吗?其次,代码规范可提高代码的复用程度,举个例子,新增一个新功能,本来需要编写1000行代码,但是由于之前代码复用度高,缩减到300行就能实现,节省了700行代码,不也解约了成本吗?
3.代码规范有助于代码审查
代码审查是项目开发过程中的一个必要环节,代码审查的目的在于发现代码逻辑中潜在的错误,代码审查的方式一般可以通过静态扫描工具或人工走查的方式进行。静态扫描工具大多只能扫描代码的语法规范,常见的语法逻辑问题,对于业务逻辑操作还得靠人工的方式进行。人工进行代码走查时,一般是相互走查,A同学写的代码由B同学走查,代码走查是一个很好的学习机会,对成员的进步也是很有益的。随意编写的代码,不遵循编码规范,会加重的代码审查的工作量及难度,浪费大量的人力物力。 代码规范让代码审查有据可查,大大提高了审查效率和效果。
4.代码规范有助于提高程序员自身素质
我认为要想成为一个高素质的程序员,最基本的要求就是要有良好的代码规范,代码规范好比一个人的穿衣打扮,那些穿衣华丽、衣冠整洁的人走到哪里都会成为亮点,相反那些整天衣衫不整、浑身散发着特殊气味的人一定会被嫌弃!有空阅读一下java JDK的源码,那些都是大牛们的杰作,阅读时真是赏心悦目!好的代码习惯不是一朝一夕都能养成的,是要经过长期的训练、积累总结才能养成。
二、常见java代码规范有哪些?
以下是我在工作中总结的代码规范(部分规范参考第三方平台的内容),有兴趣的可以收藏。
(一) 命名风格
1. 【强制】代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。反 例 :_name / name / $name / name_ / name$ / name
2. 【强制】代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。
说明:正确的英文拼写和语法可以让阅读者易于理解,避免歧义。注意,即使纯拼音命名方式也要避免采用。
正例:shaighai / zhengzhou / youku / hangzhou 等国际通用的名称,可视同英文。反例:DaZhePromotion [打折] / getPingfenByName() [评分] / int 某变量 = 3
3. 【强制】类名使用 UpperCamelCase 风格,但以下情形例外:DO / BO / DTO / VO / AO / PO / UID 等。
正例:MarcoPolo / UserDO / XmlService / TcpUdpDeal / TaPromotion
反例:macroPolo / UserDo / XMLService / TCPUDPDeal / TAPromotion
4. 【强制】方法名、参数名、成员变量、局部变量都统一使用 lowerCamelCase 风格,必须遵从驼峰形式。
正例: localValue / getHttpMessage() / inputUserId
5. 【强制】常量命名全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长。正例:MAX_STOCK_COUNT
反例:MAX_COUNT
6. 【强制】抽象类命名使用 Abstract 或 Base 开头;异常类命名使用 Exception 结尾;测试类命名以它要测试的类的名称开始,以 Test 结尾。
7. 【强制】类型与中括号紧挨相连来表示数组。正例:定义整形数组 int[] arrayDemo;