编码规范总结

总结一篇于各种文章学习的代码风格/规范等问题。
代码风格并不影响程序运行,没有潜在的故障风险,通常与数据结构/逻辑表达无关,是指不可见字符的展示方式,代码元素的命名方式和代码注释风格等。比如大括号是否换行,缩进方式,常量与变量的命名方式,注释是否统一放置在代码上方等。代码风格并无绝对的优劣之分,主要诉求是清爽统一,便于阅读和维护,团队的一致性很重要。

1.命名规约

(1)Java中,所有代码元素的命名都不可用下划线_或者美元符号$开始或者结束。
(2)命名体现代码元素的特征。面向对象代码元素(例如java)的命名分为两种:大驼峰和小驼峰方式,大驼峰方式例如UpperCamelCase,首字母一定是大写,小驼峰例如lowerCamelCase,首字母是小写,大驼峰一般用于类的命名,例如StringBuffer,一般是名词。小驼峰方式用于方法命名,参数,成员变量,局部变量等,动词形式,和参数组成动宾结构。
java命名建议体现元素特征,例如
1)抽象类命名使用Abstract和Base开头,异常类命名使用Exception结尾,测试类命名以Test结尾;
2)枚举类命名,以Enum结尾,枚举成员名称需要全大写,单词间用下划线隔开。
(3)命名最好做到望文知义。从名称上就可以理解含义,使代码达到自解释的目的,可以一定程度上减少注释内容,避免以下情况:
1)不规范的缩写:例如,condition,缩写成condi;
2)单个字母命名的变量,比如,x,y,z;
3)使用中文拼音缩写,尤其是中英文混合,例如changeSj(改变数据)当然,像taobao,alibaba这些国际通用的名称还是可以的。

2.常量

常量是在作用域内保持不变的值,一般用final关键字进行修饰,根据作用域划分,分为全局常量,类内常量,局部常量。
(1)全局常量:类的公开静态属性,使用public static final 修饰;
(2)类内常量:类的私有静态属性,使用private static final 修饰;
(3)局部常量:分为方法常量和参数常量,方法常量是在方法或者代码块内定义的常量,参数常量是在定义参数的时候,加上final标志,表示此参数值不能被修改
全局常量和类内常量命名采用所有单词大写的方式,单词之间使用下划线分割。而局部常量只需要使用小驼峰的形式就可以。
常量命名避免使用魔法值,即共识层面的常量,一开始,大家都知道,时间久了,代码量变大,团队规模变大,注释也不是很清晰。
可以使用不能实例化的抽象类中的全局常量,表示不会改变的全局使用的值。

3.变量

广义上说,程序变量是一切通过分配内存并赋值的量,分为不可变量(常量)和可变变量。从侠义上来说,变量仅指程序运行过程中可以改变其值的量,包括成员变量和局部可变变量。
命名采用小驼峰的方式,体现业务含义。在定义类成员变量的时候,针对布尔型变量,命名不要加is前缀,否则部分框架解析会引起序列化错误

4.代码展示风格

(1)缩进/空格/空行
1)缩进:有的缩进2个空格,有的缩进4个空格,具体依照团队规范。代码缩进建议4个空格,不使用Tap键。

2)空格:使用有以下约定:

  • 二目,三目运算符的左右两边必须加一个空格
  • “//”双斜杠注释与注释的内容之间有且只有一个空格
  • 方法的参数在定义和传入的时候,多个参数的逗号后面必须加一个空格
  • 如果大括号{}内为空,则中间不需要加空格或者换行
  • if…else 两个关键字两边必须加空格:if () {…} else {}

3)空行:方法定义之间,不同逻辑,不同语义,不同业务的代码之间都需要通过空行来分割

(2)换行与高度
1)换行

  • 单行一般不超过120个字符
  • 换行的第二行相对第一行缩进四个空格,第三行相对第二行不再缩进
  • 运算符与下文一起换行
  • 方法调用的点符号与下文一起换行
  • 方法调用的多个参数需要换行,在逗号后换行
  • 括号前不需要换行

2)方法行数限制
对于类,不做长度限制,但对于单个方法长度最好不超过80行(心理学三屏原则,人的记忆一般不超过三屏)。

(3)控制语句:if,switch,三目,for,while,do-while。
1)以上语句中即使只有一行代码,也需要加上大括号;
2)条件表达式内部,不允许有赋值操作,也不允许在判断表达式中出现复杂的逻辑组合,不易于理解;
3)多层嵌套不超过三行;
4)避免使用反逻辑运算符。

5.代码注释

注释看起来简单,容易被忽视,不被重视,但是作用不容小觑,好的注释能准确反映设计思想,代码逻辑,描述业务含义,其他工程师能正确快速了解背景知识。
(1)注释有以下要素:
1)Nothing is strange:业务代码和jdk源码不同,jdk源码稳定高效,不会经常改动,但是业务代码维护频率高,没有注释不易理解。
2)less is more:好的代码是自解释的,不需要很多的注释,如果注释需要很多,则需要优化代码表现力。
3)Advance with times:修改代码逻辑后记得改注释,保持注释的与时俱进。

(2)注释格式:
1)Javadoc规范,使用文档注释格式:/** */,注意枚举类,对元素要加上注释,元素增加删除也要加注释,建议不删除过时的属性,标记删除即可。
2)简单注释,包括单行注释,和多行注释,此类注释不允许写在代码后方,要写在代码上方。
以上摘自《码出高效-java开发手册》

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值