Google Java Style 是什么
Google Java 风格指南规定 Java 代码的格式基线:行宽上限 100 列、缩进 2 个空格、K&R 括号风格、常量用全大写下划线命名。它由 google-java-format 这类工具落地执行,评审里也就不必再讨论空格与换行该怎么放。
基本信息
| 行宽 | 100 列 |
|---|---|
| 缩进 | 2 个空格,不使用制表符 |
| 括号 | K&R 风格,左括号不换行 |
| 命名 | 类 UpperCamel、方法 lowerCamel、常量 UPPER_SNAKE_CASE |
典型使用场景
- 新项目定基线:引入格式化工具,一次把风格争议清零
- 存量项目引入:全库格式化单独成一次提交,不与逻辑改动混合
- 评审时减少噪声:风格交给工具,注意力留给设计与命名
- 多仓库统一:同一份风格配置复制到各仓库保持一致
- 与 Checkstyle 分工:格式由格式化工具管,规范由检查器管
落地顺序
- 先确定基线与格式化工具的版本
- 全库格式化作为独立提交,不与业务改动混在一起
- 把格式检查接进 CI,形成不可跳过的门禁
- 同步编辑器配置,减少保存时的格式抖动
风格示例
风格示例
public class RetryPolicy {
private static final int MAX_ATTEMPTS = 3;
public boolean shouldRetry(int attempt) {
return attempt < MAX_ATTEMPTS;
}
}常见分歧点
| 项目 | Google 风格 | 常见替代 |
|---|---|---|
| 行宽 | 100 列 | 80 列或 120 列 |
| 缩进 | 2 个空格 | 4 个空格 |
| 左括号位置 | 跟在行尾 | 另起一行 |
格式交给工具,评审把注意力留给设计、命名与边界条件,这是引入格式化工具最直接的收益。
风格讨论应该发生在引入工具之前:基线与版本定下来之后,后续评审就不必再为空格和换行反复花时间。
格式交给工具之后,评审意见可以集中在命名语义、边界条件与错误处理上,这些都是工具看不出对错的地方。
Sun 风格与 Google 风格混用:格式工具持续告警,团队开始在本地手工调整代码。