IDEA配置

主要参考来源是ApacheFlink代码规范官方文档。

IDEA插件

主要参考来源是ApacheFlink代码规范官方文档。

google-java-format

1.7.0.6 锁死版本。新版风格应该不一样。
以下是1.7.0.6的下载地址。
https://plugins.jetbrains.com/plugin/8527-google-java-format/versions/stable/115957
选择AOSP
image.png

Save Actions

保存自动格式化。

IDEA配置文件修改

.editerconfig 参考Apache Flink源码中的配置

Maven配置

spotless

这个插件的作用是代码不符合规范 maven validate不通过,不给编译。
https://github.com/diffplug/spotless/tree/main/plugin-maven

  1. <plugin>
  2. <groupId>com.diffplug.spotless</groupId>
  3. <artifactId>spotless-maven-plugin</artifactId>
  4. <version>2.4.2</version>
  5. <configuration>
  6. <java>
  7. <googleJavaFormat>
  8. <version>1.7</version>
  9. <style>AOSP</style>
  10. </googleJavaFormat>
  11. <!-- \# refers to the static imports -->
  12. <importOrder>
  13. <order>org.apache.flink,org.apache.flink.shaded,,javax,java,scala,\#</order>
  14. </importOrder>
  15. <removeUnusedImports />
  16. </java>
  17. </configuration>
  18. <executions>
  19. <execution>
  20. <id>spotless-check</id>
  21. <phase>validate</phase>
  22. <goals>
  23. <goal>check</goal>
  24. </goals>
  25. </execution>
  26. </executions>
  27. </plugin>

字符串分隔

split问题

https://www.cnblogs.com/yxmfighting/p/7383013.html

Apache Common StringUtils.split优点
1、已经帮助用户判空。
2、不是正则性能好。
3、当传入””空串的时候,原生的返回数组里有一个元素。而StringUtils返回0个。
Apache Common问题
1、和原生split功能其实是不一样的。具体如下文。
https://blog.csdn.net/lewky_liu/article/details/89166506

配置读取

  1. String filepath = "vertx.properties";
  2. Properties props = new Properties();
  3. InputStream inputStream = Entry.class.getClassLoader().getResourceAsStream(filepath);
  4. props.load(inputStream);
  5. String key = props.getProperty("username");

异常管理

Catch中打印堆栈信息

  1. //good
  2. try {
  3. //......
  4. } catch (Exeception e) {
  5. LOG.info("foo" + e);
  6. }
  7. //bad 不可控
  8. try {
  9. //......
  10. } catch (Exeception e) {
  11. e.printStackTrace();
  12. }

返利
image.png

image.png

泛型

  1. // good
  2. ArrayList<String> bar = new ArrayList<>();
  3. // bad
  4. ArrayList<String> foo = new ArrayList<String>();

流编程模型的使用

https://google.github.io/styleguide/

参考文献

[1] Apache Flink Code Style and Quality Guide https://flink.apache.org/contributing/code-style-and-quality-common.html
[2] Google Java Style Guide https://google.github.io/styleguide/javaguide.html