业界公认的代码规范手册(国内)当属阿里巴巴旗下出版的《Java 开发手册》,经过几个版本的迭代,最新手册为《Java 开发手册》,更新时间为2022年6月14号。
对于Java的整体规范,主要分为了编程规约、异常日志、单元测试、安全规约、MySQL数据库、工程结构几个部分。
一、编程规约
1.命名规范:
类名使用UpperCamelCase风格,但DO、PO、DTO、VO、BO等除外。
方法名、参数名、变量名统一使用lowerCamelCase风格。
常量名全部大写,单词间用下划线隔开。
接口类中的方法和属性不要加任何修饰符,并加上有效的Javadoc。
注:
命名规范不仅是为了程序的美观,更重要的是提高了代码的可读性,促进了团队协作,对代码减少错误、提高代码质量有着极高的帮助。
2.代码格式
采用4个空格进行缩进,禁止使用Tab字符。
单行字符数限制不超过120个,超出需要换行。
不同逻辑、不同语义、不同业务之间的代码插入一个空行分隔符。
注:
代码格式的规范也是为了整体代码质量的提高,使代码整洁自然,对代码维护、搜寻有着极大的帮助。
3.OOP规约
直接使用类名来访问静态变量或静态方法。
所有覆写方法必须加@Override注解。
对外的接口原则上避免修改,可以增加新接口,过时接口使用@Deprecated注解。
注:
OOP规约提高了代码的一致性、封装性、继承性。降低了沟通成本,同时使软件易于修改和扩展。
二、异常日志
1.错误码:错误码不体现版本号和错误等级信息,不能直接输出给用户作为提示信息使用。
2.异常处理:捕获异常后,根据业务需要进行适当处理,避免吞掉异常。
3.日志规约:应用中不可直接使用日志系统(如Log4j、Logback)中的API,而应依赖使用日志框架(如SLF4J)中的API。 所有日志文件至少保存15天,以便进行问题追踪和分析。
注:
异常日志对于问题定位与诊断、提高系统稳定性具有极大的帮助,促进代码的持续改进,同时对于团队协作、行业规范和标准有着极大的意义。
三、单元测试
‘
1.AIR原则:单元测试必须遵守自动化(Automatic)、独立性(Independent)、可重复执行(Repeatable)的原则。
注:
AIR原则使得代码经过检验后无需人工干预,可自动运行,减少了人为错误。同时每个单元测试独立于其他测试、确保了测试的可靠性和可重复性。
测试用例:测试用例通常被定期执行,执行过程必须完全自动化才有意义。
注:
手动执行测试用例不仅效率低下,而且容易出错。自动化测试工具可以集成到CI/CD流程中,实现代码的持验证,使代码持续集成。
验证方式:单元测试中不准使用System.out来进行人肉验证,必须使用assert来验证。
注:
System.out效率低下同时无法确保验证的准确性和一致性,而assert
语句在实际结果与预期结果不符时,会抛出异常,从而指出测试失败的具体原因。
四、安全规约
1.数据脱敏:用户敏感数据禁止直接展示,必须对展示数据进行脱敏处理。
2.参数校验:用户请求传入的任何参数必须做有效性验证,防止恶意输入导致安全问题。
五、MySQL数据库
1.建表规约:表名、字段名等命名需符合一定规范,以提高数据库的可读性和可维护性。
2.索引规约:合理使用索引以提高查询效率,但需注意避免过多索引导致写操作性能下降。
3.SQL语句:编写高效、可读的SQL语句,避免使用复杂的子查询和不必要的连接操作。
注:
MYSQL数据库对整个表、索引等有着极高的规范,促进了代码的可读性与可维护性,同时SQL语句节省了许多代码的不必要操作。
六、工程结构
1。应用分层:根据业务逻辑将应用划分为不同的层次(如表现层、服务层、数据访问层等),以提高代码的可维护性和可扩展性。
2.二方库依赖:合理管理二方库依赖,避免版本冲突和不必要的依赖引入。
3.服务器配置:合理配置服务器参数以提高应用性能和稳定性。
注释:我没搞懂,一个字都看不懂。字都认识,组合起来很陌生。
在使用时,只需要打开IDEA,点击tools—>安装的阿里编码规约,可以选择中英文切换,项目右键选择编码规约扫描就可以进行查看自己编码哪些地方不够好。
注释:引用
《Java开发手册》: