提高开发效率,提升代码质量:CheckStyle的实战应用

根据 「阿里巴巴开发规范」 配置 IDEA 开发环境

google-code-checks-xxx.xml
根据 google-code-checks.xml 修改
按照官方文档加上中文注释
具体的 checkstyle 规则可以查看 google-code-checks.xml

命名规约

通过 checkstyle 控制, 所有不符合要求的 包名, 类名, 方法名, 局部变量, 静态变量, 常量 都会提示

name.gif

  1. 接口类中的方法和属性不要加任何修饰符号(public 也不要加),保持代码的简洁 性,并加上有效的 Javadoc 注释
    20241229154732_Gp3mXzIv.webp

    idea 对于多余的修饰符也会标记, 这里使用 checkstyle 提示

常量定义

  1. 重复的字符串出现 2 次以上, 就会提示, 应该使用常量字符串代替
    20241229154732_g3xmU12z.webp
  2. 当定义一个常量时, 希望使用大写的 L 来代替小写的 l, 原因是小写的 l 和数字 1 很象
  3. long 或者 Long 初始赋值时,必须使用大写的 L,不能是小写的 l,小写容易跟数字 1 混淆,造成误解
    20241229154732_E6dayluU.webp

格式规约

全部使用 checkstyle 约束
如果违反规则, 则会给出提示, 按照相应提示修改即可, 修改之前先全部格式化, 会减少很多提示

  1. 缩进采用 4 个空格,禁止使用 tab 字符

  2. 单行字符数限制不超过

  3. 单行字符数限制不超过 120 个,超出需要换行,换行时
    遵循如下原则:

    1. 第二行相对第一行缩进 4 个空格
    2. 运算符与下文一起换行。
    3. 方法调用的点符号与下文一起换行。
    4. 在多个参数超长,逗号后进行换行。
    5. 在括号前不要换行

    格式化文件和 checkstyle 都已经设置为 120 个字符长度, 如果超长, 使用快捷键格式化, 然后按照上面的 5 点原则修改即可

  4. IDE 的 text file encoding 设置为 UTF-8; IDE 中文件的换行符使用 Unix 格式,不要使用 windows 格式。
    20241229154732_p0zIZSOx.webp

  5. Object 的 equals 方法容易抛空指针异常,应使用常量或确定有值的对象来调用 equals。

  6. 不使用 System.out[err].print[ln]
    20241229154732_LTNkgVyJ.webp

改为

20241229154732_BQdn0DGp.webp

注释规约

  1. 规范 todo 和 fixme 标记
    todo.gif

    todo 和 fixme 后 跟 - 名字 谁标记谁处理

    1
    2
    fixme-dong4j : ($date$ $time$ [ 说明] [预计处理时间])
    todo-dong4j : ($date$ $time$ [ 说明] [预计处理时间])

    20241229154732_S0bgDTGj.webp

    20241229154732_sT7NwYnw.webp

  2. 类, 方法, 字段注释要求

    创建类时, 使用模板自动生成类注释
    方法注释使用 javadoc[插件] 自动生成
    字段注释使用 / ** 注释内容 */ 的方式, 当使用 F1 查看字段时, 即可看见注释说明, 不需要跳转到对应的类查看

    class.gif

    method.gif

    20241229154732_emSXa0iL.webp

    20241229154732_HiwlLvwj.webp

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    /**
    * <p>Title: $packagename$</p>
    * <p>Company: xxx 公司 </p>
    * <p>Copyright © 2014 x'x'x All Rights Reserved</p>
    * <p>Description: $END$</p>
    * author: dong4j
    * emali: dong4j@gmail.com
    * version: 1.0
    * date: $date$ $time$
    * updatetime:
    * reason:
    */

20241229154732_qEnNI6Yb.webp

checkstyle 使用方法

  1. 安装 CheckStyle-IDEA 插件
  2. 导入 google-code-checks-xxx.xml
  3. 然后导入 google-code-style.xml
  4. 最后关联 2 个文件
    20241229154732_AAxyu2Sv.webp

checkstyle 插件的使用

安装好插件后, 第一次打开项目, 就会扫面全部文件的代码, 会时时提示规则

  1. 手动检查当前文件 右键 –> check current file
    20241229154732_u37mHagb.webp

  2. 手动扫描 module

  3. 手动扫面 project
    20241229154732_jeXfXrJv.webp

警告提示

20241229154732_e3azFvY8.webp

这个不晓得是不是 bug, 暂时还没有找到解决办法, 所以暂时忽略

20241229154732_oB9m6YSz.webp

checkstyle 取消勾选即可