代码规范

编程规范指的是针对特定编程语言约定的一系列规则,通常包含文件组织、缩进、注释、声明、语句、空格、命名约定、编程实践、编程原则和最佳实践等。

命名规范

  1. 要有准确的意义
  2. 严格遵守命名规范
    1. 驼峰命名法
  3. 可读性优先

    1. 可读性强 > 简短 (使用完整的词汇)
    2. 不使用缩写、简写、缩略词(除非已经被广泛使用)
    3. 避免含糊、混淆或误导

      代码整理

      给代码分块

      1. if (firstName != null && lastName != null)
      2. // 分块后
      3. if ((firstName != null) && (lastName != null))
  4. 保持代码块的单一性,一个代码块只能有一个目标

  5. 注意代码块的完整性
  6. 代码块数量要适当

    使用空白空间

  • 空格:逻辑区分,用于同一行代码内部的信息分块
  • 缩进:水平分割,用于表示代码块的级别
  • 空行:垂直分割,用于分开同级别的不同代码块

微信截图_20210425103722.png

一行一个行为

  1. if (variable != null) variable.doSomething();
  2. // 分隔开两个行为
  3. if (variable != null) {
  4. variable.doSomething();
  5. }

基本的换行原则:

  • 逗号后换行

    1. String variable = anObject.getSomething(longExpressionOne,
    2. longExpressionTwo, longExpressionThree);
  • 在操作符前换行

    1. String varibale = longStringOne + longStringTwo
    2. + longStringThree;
  • 高级别的换行优先 ```typescript anObject.methodOne(parameterForMethodOne,

    1. anObject.methodTwo(parameterForMethodTwo));

/ conventional indentation int runningMiles = runningSpeedOne * runningTimeOne

  1. + runningSpeedTwo * runningTimeTwo;

// confusing indentation
int runningMiles = runningSpeedOne

  1. * runningTimeOne + runningSpeedTwo
  2. * runningTimeTwo;
  1. - 新的换行与上一行同级别表达式的开头对齐
  2. ```typescript
  3. anObject.methodOne(parameterOne,
  4. parameterTwo,
  5. parameterTwo);

注释

注释是无奈的妥协:

  • 不需要运行
  • 难以维护

    原则

  1. 准确
  2. 必要
  3. 清晰

    声明

    一行一个声明

    微信截图_20210425110058.png

    局部变量需要时再声明

    微信截图_20210425110226.png

    类属性要集中声明

    微信截图_20210425110432.png

    声明时就初始化

    微信截图_20210425110610.png

    尾随的花括号

  4. 左括号不要单独成行,要紧随在语句尾部,以一个空格隔开

  5. 右括号单独一行

微信截图_20210425110819.png

紧靠的小括号

微信截图_20210425110958.png

参考资料

  1. 代码精进之路
  2. 前端开发变量命名系列 - JavaScript篇