Java Code Style
2024-08-29 18:08:51
近期困惑于团队成员代码风格迥异,代码质量不可控,作为一名老司机,忧患于后期服务的可维护性,多次一对一的代码Review,耗时耗力不说,效果也不明显。痛定思痛,多次反思之后得出结论:无规矩不成方圆,可靠的服务必须建立在统一的代码风格基础之上,仅仅提倡是远远不够的,必须使用有效的可执行机制,确保最终效果。
这里的可执行机制包含以下几个方面:
(1)有统一的代码风格约束要求;
(2)IDE辅助检查代码风格约束是否满足,实时检测提醒;
(3)构建项目过程强制检查代码风格约束是否满足,如不满足,终止构建;
本篇简要记录以“Google Java Code Style”作为代码风格约束的实践。
1.Google Code Style Guide
2.IDEA配置Google Style
IntelliJ IDEA --> Preferences... --> Editor -> Code Style --> Java --> Import Scheme --> IntelliJ IDEA code style XML
这一步配置完成之后,格式化代码时会使用“Google Java Code Style”的样式进行格式化处理,如:代码缩进。
3.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”,如不满足会有异常提醒。
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>
<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风格。
最新文章
- 【转载】保哥 釐清 CLR、.NET、C#、Visual Studio、ASP.NET 各版本之間的關係
- GitHub使用教程
- sqlserver 动态行转列
- shell 外部传入jmeter脚本线程数,rampUp时间,持续运行时间
- bzoj1412: [ZJOI2009]狼和羊的故事
- IONIC beta.14 版本变更一览
- 代C语言上机实践
- innosetup 安装静默安装msi,指定安装路径的方法
- CentOS+Apache+php无法访问redis的解决方法
- c++builder 重载WindowProc、WndProc 截获消息(比Delphi多一个Message Map方法)
- iOS8互动的新通知
- dwr推送技术深入研究
- (简单) POJ 1195 Mobile phones,二维树状数组。
- java的引用数据类型,你知道吗???
- Linux - Bash shell的功能;内建命令type
- android https安全连接
- Guava Cache探索及spring项目整合GuavaCache实例
- ppt演讲者模式
- sqlbulkcopy 多表批量保存
- mysql,int(5)、int(10)啥区别联系