1.规范的划分
将Java代码规范分为 风格规范 和 质量规范 ,主要是因为这两种规范关注的方面不同,各自解决的问题也不同。下面详细解释为什么需要将代码规范分为这两种
1.1 风格规范(Coding Style Guidelines)
风格规范主要关注代码的外观和表达方式,确保代码的一致性和可读性
风格规范细则https://xiaohui.blog.csdn.net/article/details/144291983
1.2 质量规范(Code Quality Guidelines)
质量规范则更侧重于代码的内在质量和逻辑正确性,旨在提高代码的健壮性、可靠性和性能。
质量规范细则https://blog.csdn.net/luChenH/article/details/144295458
2. 风格规范(Coding Style Guidelines)
遵循一致的命名约定、缩进风格、注释规则和代码组织方式,提高代码的可读性,减少阅读和维护代码时的困惑和误解。
2.1 规范规则
依据业内《JAVA开发规范(黄山版)》整理出总计42条规则,划分为9大类,详情如下:
序号 | 校验分类 | 规则数 |
1 | 命名检查 | 10 |
2 | 常量定义 | 2 |
3 | 代码格式 | 5 |
4 | OOP规约 | 4 |
5 | 数量检查 | 6 |
6 | 控制语句 | 4 |
7 | 导入检查 | 3 |
8 | 注释规约 | 4 |
9 | 其他 | 4 |
2.2 规范说明
风格规范不设置代码的问题分级,开发负责人根据团队的实际情况,制定详尽且切实可行的落地计划,按照风格规范进行代码编写和修改。在代码提交至远程仓库之前,进行代码风格规范的自检,及时发现并纠正不符合规范的代码片段。
3. 质量规范(Code Quality Guidelines)
关注代码的质量和内在逻辑的正确性,编写健壮的异常处理逻辑、确保代码的可测试性、遵循SOLID原则进行代码设计和架构、以及进行性能优化等。
3.1规范规则
依据《JAVA开发规范(黄山版)》和质量监测平台sonarqube内置规则,整理出规范校验规则总计534条规则,依据类型划分4类,详情如下:
序号 | 类型 | 规则数 |
1 | BUG | 139 |
2 | 漏洞 | 29 |
3 | 异味 | 329 |
4 | 安全热点 | 37 |
并依据严重程度划分了五个层级:
- 阻断:通常表示代码中存在严重错误,阻止了开发或测试工作的正常进行。这些问题可能导致系统崩溃、死循环、数据库数据丢失等严重后果。
- 严重:表示系统的主要功能部分已经丧失,或者数据库保存调用出现错误,用户数据可能丢失。
- 主要:通常与功能设计和需求严重不符,或者模块无法启动或调用。
- 次要:通常是一些较小的错误或不符合最佳实践的地方。
- 提示:最低级别的问题,通常是一些建议或提醒,帮助开发人员改进代码质量。
3.2 规范说明
对于阻断、严重和主要问题,建议进行统一的修改。以确保这些问题得到及时解决,从而提高系统的整体稳定性。对于次要和提示类的问题,开发负责人根据当前系统的实际情况来决定是否进行整改。具体的规则和案例可参考附件《JAVA静态代码质量规范》。
代码提测前,通过SonarQube平台进行代码质量的检测。确保提测前的代码符合质量规范,确保本次因质量规范而修改的代码不会影响到功能逻辑。
新增类代码,保障代码的无阻断、严重、主要类问题。编写新代码时,必须严格遵守质量规范,确保代码的质量符合要求。对于存量代码,由于可能涉及到历史遗留问题和复杂的业务逻辑,整改工作可能更为复杂和耗时,开发负责人根据团队的实际情况和实际需求制定相应的整改计划,明确整改的目标、时间表和责任人,逐步解决存量代码中的问题。
4. 规范指标
序号 | 指标类型 | 单位 | 推荐值 |
1 | 代码风格检查 | 数值 | 0 |
2 | 代码总行数 | 数值 | |
3 | 代码总文件数 | 数值 | |
4 | 函数代码行数 | 数值 | 小于80 |
5 | 文件代码行数 | 数值 | 小于500 |
6 | Bugs(阻断、严重) | 数量 | 0 |
7 | 漏洞(阻断、严重、主要) | 数量 | 0 |
8 | 异味(阻断、严重) | 数量 | 0 |
9 | 代码重复率 | 比例 | 小于10% |
7 | 平均代码圈复杂度 | 数值 | 小于10 |