近期困惑于团队成员代码风格迥异,代码质量不可控,作为一名老司机,忧患于后期服务的可维护性,多次一对一的代码Review,耗时耗力不说,效果也不明显。痛定思痛,多次反思之后得出结论:无规矩不成方圆,可靠的服务必须建立在统一的代码风格基础之上,仅仅提倡是远远不够的,必须使用有效的可执行机制,确保最终效果。
这里的可执行机制包含以下几个方面:
(1)有统一的代码风格约束要求;
(2)IDE辅助检查代码风格约束是否满足,实时检测提醒;
(3)构建项目过程强制检查代码风格约束是否满足,如不满足,终止构建;
本篇简要记录以“Google Java Code Style”作为代码风格约束的实践。
1.Google Code Style Guide
2.IDEA配置CheckStyle-IDEA Plugin
(1)安装CheckStyle-IDEA Plugin;
IntelliJ IDEA --> Preferences... --> Plugins
(2)配置CheckStyle-IDEA Plugin使用“Google Java Code Style”;
IntelliJ IDEA --> Preferences... --> Other Settings --> Checkstyle
这一步配置完成之后,IDEA会实时检测代码风格是否满足“Google Java Code Style”,如不满足会有异常提醒。
3.IDEA配置Google Style
IntelliJ IDEA --> Preferences... --> Editor -> Code Style --> Java --> Import Scheme --> CheckStyle Configuration
这一步配置完成之后,格式化代码时会使用“Google Java Code Style”的样式进行格式化处理,如:代码缩进。
4.Maven配置checkstyle Plugin
在Project或Moudle pom.xml中进行如下配置即可:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>3.0.0</version>
<dependencies>
<dependency>
<groupId>com.puppycrawl.tools</groupId>
<artifactId>checkstyle</artifactId>
<version>8.8</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>validate</id>
<phase>validate</phase>
<configuration>
<configLocation>google_checks.xml</configLocation>
<encoding>UTF-8</encoding>
<consoleOutput>true</consoleOutput>
<failsOnError>true</failsOnError>
<violationSeverity>warning</violationSeverity>
</configuration>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
这一步配置完成之后,项目构建过程(如: mvn clean package)会检测代码风格是否满足“Google Java Code Style”,如不满足会终止构建过程。
5.Default file template
/**
* @author ${USER}
*/
这一步配置完成之后,用于统一JavaDoc风格。
6.IDEA配置google-java-format Plugin
安装过程与2类似,仅插件名称不同。
注意:2、3、4步骤中的Checkstyle Version要保持统一。