近期困惑于团队成员代码风格迥异,代码质量不可控,做为一名老司机,忧患于后期服务的可维护性,屡次一对一的代码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相似,仅插件名称不一样。
注意:二、三、4步骤中的Checkstyle Version要保持统一。