springboot第73集:代码约束规范,一文让你走出微服务迷雾架构周刊

97 阅读3分钟

基本规则

  • 使用 Java 8+ 版本。
  • 尝试使用 Java 11 或更高版本,但需要保证兼容.

程序结构和命名

通用规则

  • 使用小写字母来命名目录。如有必要,可以使用连字符 - 来分隔单词。
  • 使用小写字母来命名 package, 使用单数形式,连续的单词连在一起或使用下划线分隔。
  • 使用顶级类的类名来命名 Java 源文件,大小写敏感。
  • 使用 UTF-8 作为文件 encoding , 要使用 Unix 格式,而不是 Windows 格式的换行符。
  • 禁止使用拼音(部分混合,或全部) 来命名程序元素。
  • 命名中力求语义表达完整。为达到代码自解释的目标,任何自定义编程元素在命名时,使用尽量完整的单词组合来表达。
  • 禁止使用非常规单词缩写。Abstract -> Abs, Condition -> Condi 均为非常规。有些惯例可以接受: Function -> Func
  • 避免使用下划线或美元符号作为命名的开始和结束。

类/枚举/接口

  • 对类名中单词的缩写,双单词缩写两个字母都大写,多单词缩写第一个字母大写,其他小写。 如: IO, Tcp, Xml
  • 在抽象类命名使用 Abstract 开头 或 Base 结尾;
  • 异常类命名使用 Exception 结尾;
  • 测试类命名以它要测试的类的名称开始,以 Test 结尾。
  • 接口的内部实现类可以使用 Impl 结尾。
  • 和阿里规范不同,我们不建议为 enum 添加 Enum 后缀, 因为是否使用 enum 是一种实现决策。
  • 类名可以体现常见设计模式。
  • 使用 lowerCamelCase 的风格来命名 field, variable, parameter 。
  • 命名中尽量体现意图
  • 在命名中体现意图

常量

  • 使用全大写加下划线 CONSTANT_NAME 的形式来命名常量。
  • 使用大写字母 L 来标示 long 字面量。小写的 l 容易和 数字 1 混淆。
  • 按照常量的复用层次来定义:跨应用共享常量、应用内共享常量、子工程内共享常量、包内共享常量、类内共享常量。
  • 使用 lowerCamelCase 的风格来命名
  • 将一行的长度限定在 120 字符以内。以下情况例外:import 语句,自动生成的代码,文档中长的 url
  • 使用 4 个空格作为基本缩进块。禁止使用 Tab 字符。
  • 禁止一行定义多个语句。

语句/表达式

  • 在 switch 语句中加上 default 分支。例外:穷举所有 enum 值后可以没有 default。
  • 在 switch 语句的 case 分支中,添加 break/continue/return 作为结束,或者加上注释 fall through
  • 禁止String 类型禁止使用 == != 比较字符串。

异常

  • 处理所有的异常处理分支。 几乎所有情况下catch的异常都需要进行处理。
  • 不要catch不能处理的异常。
  • 如果确信需要忽略该异常,请在catch段中使用注释说明原因。
  • 在捕获异常并封装成其他异常时,把原始异常实例作为新异常的cause参数。在异常发生时, 能通过异常链快速确定完整的异常原因。
  • 使用 try-with-resources 方式,对资源对象、流对象进行关闭。

加群联系作者vx:xiaoda0423

仓库地址:github.com/webVueBlog/…