开发习惯!

  1. 字符串中使用单引号 ',JSX 中使用双引号 "
  2. 采用两格空格缩进
  3. 方法体控制在一屏内显示 (120行)
  4. 直接使用 this,不要使用 that/self/me
  5. console.log语句禁止提交
  6. 代码中不允许出现中文文案,需国际化
  7. TS类型完美,尽可能不使用any
  8. 变量命名不要用缩写,语义化命名,看到变量名就知道什么含义
  9. import模块时不要用那么多的…/…/,直接用src/xx/x引用
  10. 不要保留无用的代码或者注释,直接删掉即可
  11. 回调原则上不允许超过两层,三层必须用promise处理,建议使用 async await
  12. component命名方式一率用大驼峰,目录用小写加横杠(?目前dataphin用的驼峰)
  13. 使用 === 和 !== 替换 == 和 !=,只有在判断 undefined 和 null 时除外,用 undefOrNull == null
  14. 注释 区分 /** … */(方法、属性、类定义) 和 // … (方法体中)。
  15. 不要使用 export * ,也不要使用 export default (除非是输出单个组件),尽量使用 named export
  16. 文件头部需要添加作者信息,以便于快速联系,author 可以是一个也可以是多个,格式如下:
    17.使用解构
    18.引入新的第三方依赖需要评审

React组件规范

  1. 公用组件写文档,props 和 state 必须加上中文说明
  2. 使用纯函数创建 React 组件时,不要使用箭头函数(因为它不能得到 displayName)
  3. 禁止出现 warning,一定要解决
  4. 禁用 默认跳转行为应该使用 ,不要使用 href=‘#’
  5. 在做 Form 的时候不要使用 因为它是传统刷新页面式的提交。正确的做法是在 submit button 上绑定 onClick 手动处理
  6. 除非是公共组件,一律禁止使用内部state,数据统一放到redux管理
  7. render函数放在最后,顺序是propTypes, props和state的初始化, component初始化,其它方法
  8. 回调方法一率用on-, before-, after-开头,加一名词,比如onSwitched,component内事件,一率用 handle- 开头,加一名词
  9. boolean 类变量命名,开头只有三种,is-,has-,can-
  10. 定义ref 的名称, 要以ref 开头的驼峰; 如: refGraphToolsCont

TS使用规范

  1. 类型完美,函数参数、返回值都需要定义类型,尽可能不用any
  2. 属性类型要写全
// bad:
favoriteListStore = [];

// good:
favoriteListStore = [] as Store[];
  1. 全局类型添加到 d.ts
// bad:
locaz: Locaz = (<any>window).locaz;

// good:
locaz = window.locaz;
  1. 基础类型用小写,能自动推导时省略类型
// bad:
sthA: Boolean;
sthB: String;
sthC: Number;
strD: boolean = false;

// good:
sthA: boolean;
sthB: string;
sthC: number;
strD = false;

5、OOP 与 FP 结合

(1)、把 class 中的实例方法改成静态方法
(2)、把 class 中的实例方法 this,提到第一个参数。
(3)、把方法改成纯函数

class A {
    
    
  static fun1(a: A, arg1: Arg1) {
    
    
    // pure function
  }

  static fun2(a: A, arg1: Arg1) {
    
    
    // pure function
  }
}

class B {
    
    
  static fun1(b: B, arg1: Arg1, a: A) {
    
    
    // pure function
    return B.fun(b, A.fun1(a, arg1));
  }

  static fun(b: B, arg1: Arg1) {
    
    
    // pure function
  }
}

原因:
● 使用 OOP 风格的 class,结合初始值和类型定义,与 Typescript 类型结合完美。也可以使用 OOP 风格成熟的设计模式。
● 使用 static method (纯函数)的方式,替代 class 中的实例方法,解决如下问题:
○ 原有非 OOP 风格数据处理方法分散;
○ 原有实例方法( mutable 方法)影响范围大,不够内聚,无法发挥 FP 的优势,与团队数据处理方式不契合;
○ OOP 在 BI 产品中,需要不断构造,序列化。而 static method (纯函数)的方式,不涉及任何实例方法的引用。
6、命名导出,这样对类型更友好。


Git Commit 规范
type 可选值:

● feat: 新功能
● fix: 修复问题
● docs: 文档修改
● format: 修改代码格式,不影响代码逻辑
● clean: 清理代码,移除过期代码
● refactor: 重构代码,非添加新功能,非修复漏洞
● perf: 性能提升
● test: 添加测试
● chore: 修改工具相关(不限于文档、代码生成,Makefile 修改)
● deps: 依赖更新

猜你喜欢

转载自blog.csdn.net/mengfanyue123/article/details/128632833
今日推荐