CODING DevOps 代码质量实战系列第三课:Java 版

2020-08-26 17:37:45 浏览数 (1)


讲师介绍

杨周

CODING DevOps 架构师

CODING 布道师

连续创业者、DIY/Linux 玩家、知乎小 V,曾在创新工场、百度担任后端开发。十余年一线研发和带队经验,经历了 ToB、ToC、O2O、国内、出海各种项目,见证了云计算时代的诞生,擅长研发最佳实践:Code Review、DevOps、Git Workflow、敏捷开发、架构、极客办公硬件。

Java 老项目常见质量问题

  • 问题一:把 Jar 包提交到了代码库
Jar 包等二进制文件无法进行文本对比,体积庞大,如果放在代码库中,导致拉取代码变慢,而且无法跟进包版本升级。所以应使用包管理工具进行网络安装。
但有的第三方包未发布到 Maven 仓库,或者公司的私有包,需要上传到私有仓库。无需搭建,使用 CODING 制品库即可。
  • 问题二:书写规范问题

比如魔法数字(magic number)、缩进等问题,可通过引入业界知名的代码规范,使用 Lint(代码静态扫码工具)进行检查。Java 常用的 Lint 工具是 Checkstyle,下载 Google Java Style 的 xml 文件,即可进行检查,包括很多规则,比如:

  • 每行代码最大长度 100 个字符
  • 缩进使用 2 个空格

老项目有成千上万的报错,一次难以清理干净,建议使用增量检查,具体请访问 CODING 帮助文档,搜索「增量检查」。

  • 问题三:使用落后的技术

比如落后的 Java 版本、maven,建议升级至 Gradle。

Java 自动化测试

  • 自动化测试要点
可测性:不要在代码中使用系统时间、随机数、实例化对象,而应使用可被 mock 的时间库、依赖注入;
Fake:用于伪造测试数据,而不要在测试代码中写死 123、12:00:00,因为可能 999、00:00:00 时会报错。
Mock:模拟对象,常用于拦截第三方服务,比如拦截微信登录、支付,直接返回成功或失败,然后测试后续业务逻辑,而不可能每次测试时真的付款。

Java 自动化测试时,可使用 JaCoCo 生成测试覆盖率的 HTML 报告,可以看到哪一行代码没有覆盖。这种报告包含代码,所以需要私有访问,可使用 CODING 通用报告功能,在持续集成中自动上传即可。

  • Java 代码自动生成 API 文档

在项目开发中,最好让代码先行,在代码里写注释,这样可以保证注释与代码一起维护,然后在持续集成中执行命令自动生成文档,可上传到 CODING API 文档中,支持团队成员直接访问、加密分享。

点击阅读原文,观看课程回放

0 人点赞