登录/注册
CODING DevOps 代码质量实战系列第三课:Java 项目代码规范实战

CODING DevOps 代码质量实战系列为 CODING 布道师、高级工程师杨周老师在腾讯云大学开展的线上课程,第三课《DevOps 代码质量实战(Java 版)》为本系列课程的 Java 版,将以 Java Spring 为例,讲解代码规范、Git workflow、持续集成、代码生成 API 文档、修改 maven 包、单元测试、Docker 等内容。

本系列课程共三课,目前已结课,同学们可点击前往腾讯云大学,观看课程回放

讲师介绍

杨周
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 文档中,支持团队成员直接访问、加密分享。

注册即用,体验酣畅的开发流程

立即使用
投稿须知
感谢您对 CODING 洞见的关注和支持!如果您有意向我们投稿,可在下方的推荐方向中选择合适的选题。
【CODING 洞见近期推荐投稿方向】
包括但不限于——
普适性布道、技术实践、产品实践、解决方案、行业解读等等
【云原生】DevOps(GitOps、ChatOps、DevSecOps)等
【研发管理】敏捷开发、项目/团队管理、团队协作、研发提效等
【产品实践】基于 CODING 产品的实践类文章
我们将在 CODING 洞见、公众号、知乎、微博等 10+ 官方渠道,署名发表您的文章,共促软件开发及相关领域的知识沉淀与分享。
如果您的文章已成文——
点击下方【前往投稿】立即投稿吧!
如果您有尚未成文的选题——
点击【前往投稿】填写相关信息,我们将与您沟通,共同打磨文字。

立即投稿