近期困惑於團隊成員代碼風格迥異,代碼質量不可控,做爲一名老司機,憂患於後期服務的可維護性,屢次一對一的代碼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要保持統一。