其实对于初学者,最忌讳的一个事就是在学习过程中,认为自己是新手,代码可以随便写!但是事实上并不是如此!因为一个人的编码规范是从开始学的时候就必须要练习和养成习惯的!从编码过程中的每一件小事做起!从我们初学的时候的变量
、方法名
、类名
等做起!不要看不起这一段代码!其实大牛与小白写代码,除了思维上的差距外,其编码风格也是重中之重!可能两个人写相同的一段逻辑!小白写的,别人可能要花上10分钟去读取,而大牛写的代码可能只需要一分钟!其中差距就这么大!
为什么我们一定要注重编码规范呢?
俗话说:无规矩不成方圆,无规范难以协同!日后毕业你肯定要在企业中担任一个程序员!每一个项目组都是由多个java开发工程师组成!如果你写的代码,乱七八糟的,逻辑不清!只是把功能实现了!对于同事来说太过痛苦!对于你来说,更不宜与代码的维护!
可以这样说,编码规范是每一位开发工程师必知必会的技能!
规范
命名风格
- 代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束!
- 代码中的命名严禁使用拼音与英文混合的方式,跟不允许直接使用中文的方式!正确额英文写法让阅读者能够更容易理解!
- 类名使用首字母大写的驼峰命名法 例如:
UpperCamelCase
但是有例外:比如: DO/BO/DTO/VO/AO/PO/UID等不在此列!泪如UserVO
- 方法名、参数名、成员变量、局部变量都统一使用首字母小写的驼峰命名法!列如:
lowerCamelCase
风格,必须遵循驼峰形式! - 常量命名全大写!单词的分割使用下划线隔开,力求能够完整的表达意思!不要嫌弃名字长!
- 抽象类使用
Abstract
或者Base
开头;异常类命名使用Exception
结尾;测试类命名以他的测试类名
开始Test
结尾! - 类型与中括号紧挨相连,标识数组!例:
int[] arrayDemo
- 在POJO类中,布尔的变量都不要加
is
前缀,否则部分框架解析会引起序列化错误! - 包名统一使用小写
- 避免在父子类的成员变量间、或者不同代码块的局部变量之间采用完全命名相同的名称,降低可读性!
- 命名要达到望文知意
- 对于Service和DAO类,内部的实现类一定以
接口类名当做前缀
以Impl
当做后缀 - 枚举类带上Enum后缀,枚举成员名需要全大写,单词间隔使用下划线隔开!
- Service与DAO层的方法命名规范
- 获取单个对象使用get作为前缀
- 获取多个对象适应list作为前缀,复数形式结尾
- 获取统计值使用count前缀
- 插入方法使用 save/insert作为前缀
- 删除方法使用remove/delete作为前缀
- 修改方法使用update作为前缀
- 领域模型命名规约
- 数据对象
XXXDO
,XXX即为数据表名 - 数据传输对象
XXXDTO
,XXX即为业务领域相关的名称 - 展示对象
XXXVO
XXX即为一般的网页名称 - POJO是 DO/DTO/BO/VO的全称,禁止命名为XXXPOJO
- 开发中不允许任何的魔法值(即未经过预先定义,直接出现在代码中)
- 在long或者Long赋值时,数字后使用大写L作为后缀,禁止使用小写的l,避免与1混淆!
代码格式
- 如果大括号内为空,则简洁的写成{}即可,无需换行和空格!若不为空:
- 左大括号前不换行
- 左大括号后换行
- 右大括号前换行
- 右大括号后还有else等代码不换行
- 表示终止额右大括号必须换行!
- 左小括号和字符之间不出现空格;同样,右小括号和字符之间也不出现空格;而左大括号前需要空格。
- if/for/while/switch/do等保留字与括号之间必须加空格。
- 任何二目、三目运算符的左右两边都需要加一个空格
- 采用四个空格的缩进,即使使用tab也必须设置为4个空格!
- 注释的双斜线与注释内容之间有且只有一个空格
- 在进行强制类型转换时,右括号与强制转换值之间不需要任何空格隔开!
- 单行字符严禁超过120个以上,超出换行!遵循下方规范:
- 第二行与第一行缩进4个字符,从第三行开始不再缩进
- 运算符与下文一起换行
- 方法调用与下文一起换行
- 方法调用中的多个参数需要换行时,在逗号后进行
- 在括号前不要进行换行
- 方法参数在定义和传入时多个参数逗号后必须跟上空格!
- 单个方法的代码行数不要超出80行!超出拆方法!