开发规约

文章目录

编程规约

  • 命名风格
    • 抽象类名使用Abstract或者Base开头;异常类命名使用Exception结尾;测试类命名要以它要测试的类的名称开始,以Test结尾。
    • 包名统一使用小写,点分隔符之间有且仅有一个自然语义的英语单词。包名统一使用单数形式,但是类名如果有复数含义,类名可以使用复数形式。
      • 正例:应用工具类包名为com.alibaba.ai.util、类名为MessageUtils(此规则参考spring的框架结构)
    • 在常量与变量的命名时,表示类型的名词放在词尾,以提升辨识度。
      • 正例:startTime / workQueue / nameList / TERMINATED_THREAD_COUNT
      • 反例:startedAt / QueueOfWork / listName / COUNT_TERMINATED_THREAD
    • 接口类中的方法和属性不要加任何修饰符号(public 也不要加),保持代码的简洁性,并加上有效的Javadoc注释。尽量不要在接口里定义变量,如果一定要定义变量,肯定是与接口方法相关,并且是整个应用的基础常量。
      • 正例:接口方法签名 void commit();
      • 接口基础常量 String COMPANY = “alibaba”;
      • 反例:接口方法定义 public abstract void f();
      • 说明:JDK8中接口允许有默认实现,那么这个default方法,是对所有实现类都有价值的默认实现。
  • 代码格式
    • 如果是大括号内为空,则简洁地写成{}即可,大括号中间无需换行和空格;如果是非空代码块则:
      1) 左大括号前不换行。
      2) 左大括号后换行。
      3) 右大括号前换行。
      4) 右大括号后还有else等代码则不换行;表示终止的右大括号后必须换行。
    • 左小括号和字符之间不出现空格;同样,右小括号和字符之间也不出现空格;而左大括号前需要空格。 反例:if (空格a == b空格)
    • if/for/while/switch/do等保留字与括号之间都必须加空格。
    • 任何二目、三目运算符的左右两边都需要加一个空格(单目:a++;二目:a + b;三目:三元运算符)。
      说明:运算符包括赋值运算符=、逻辑运算符&&、加减乘除符号等。
    • 采用4个空格缩进,禁止使用tab字符。
      说明:如果使用tab缩进,必须设置1个tab为4个空格。IDEA设置tab为4个空格时,请勿勾选Use tab character;而在eclipse中,必须勾选insert spaces for tabs。
      开发规约
    • 注释的双斜线与注释内容之间有且仅有一个空格。
    • 方法参数在定义和传入时,多个参数逗号后边必须加空格。
      • 正例:method(args1, args2, args3)