小明: 愁死我了,最近刚入职一家新的公司,在熟悉业务逻辑和代码。代码的可读性太差了,一个方法可能有几百行。
程序羊:正常,很多时候我们习惯和项目的Deadline可能大家没有实践和意识去关注代码规范及代码质量。
小明:说的也是,工作一忙起来我也不太关注什么代码规范了,特别是有线上有bug紧急处理的时候。
程序羊: 其实这是一个习惯问题,习惯是需要外界约束,然后慢慢去养成。
小明:如果可以有个人时刻提醒到我们,然后帮我们Check代码就好了。
程序羊:其实这种工具有很多,比如说CheckStyle,Alibaba Coding Guidelines等。
程序羊:我们来重点介绍下CheckStyle,比较灵活,可以根据团队的情况去定制一些规则。整个团队都使用同一份Check文件,可以保证规范的一致性。
程序羊:讲Check文件放到代码仓库上,团队成员引用同一份。至于Check规则可以去搜索下,也可以用标准的模板。
小明:可有时候就忘记了代码规范的事儿,直接把代码提交到仓库了。再返工修改,成本也比较大。
程序羊: 你说的很对,很多代码规范一开始是可以遵守的,但随着时间的推移就不了了之了。
程序羊: 可以安装checkstyle的相关插件,在编码过程中实施检查规范。
程序羊:我们可以借助Maven 的CheckStyle插件,如果check不通过可以让compile失败。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>2.17</version>
<executions>
<execution>
<id>validate</id>
<phase>validate</phase>
<goals>
<goal>check</goal>
</goals>
<configuration>
<configLocation>http://git.xxx.org/mall-java/checkstyle/raw/master/mall_check.xml
</configLocation>
<encoding>UTF-8</encoding>
<consoleOutput>true</consoleOutput>
<failsOnError>true</failsOnError>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>com.puppycrawl.tools</groupId>
<artifactId>checkstyle</artifactId>
<version>7.1</version>
</dependency>
</dependencies>
</plugin>
小明: 明白了,有了这个工具的约束,大家的代码规范一定可以有所提升,我再总结下使用过程。
- 编写check文件,根据团队及项目情况制定规则
- 把规则放到仓库中,团队使用同一套
- 安装CheckStyle插件,编码期间实时检查
- 使用Maven插件检查失败同时编译失败
网友评论