Clean Code规范整理

本文针对 Clean Code 一书进行了一些关键内容和提纲的总结。

变量

1.变量名有意义
2.不使用魔法数字
3.参数用变量而不是数字
4.mapping中的iterator变量命名清楚
5.属性中不要出现类名/对象名
6.方法参数使用默认值检查参数是否为undefined

方法

1.使用一到两个形参(或方法复杂、使用对象类型参数、形参的解构赋值)
2.一个方法应该只做一件事!
3.方法名要能自我解释
4.如果出现重复的代码要精练和抽象
5.使用Object.assign给对象赋值
6.(如果方法中出现flag,应当分成两个方法处理)
7.尽量避免方法的副作用(更改全局变量、多个方法写一个文件、公用一个状态等)
8.处理数组、对象时最好处理其复本
9.修改原生对象和方法最好使用class新建
10.尽量使用函数式编程代替命令式编程
11.存在多个判断条件时用方法来包括,避免使用非类型条件
12.避免使用条件语句,使用多态性(class)来代替
13.避免类型判断

对象与数据结构

1.使用class来实现继承
2.使用链式方法调用
3.谨慎使用继承(仅在以下三种情况使用):
    a.关系为is-a而不是has-a的时候
    b.基类可以被复用时
    c.想通过更改基类来进行全局属性的改变时

SOLID原则

1.SRP(单一职责):一个类要足够内聚,负责尽量单一的功能,减少类的改动;
2.OCP(开闭原则):对扩展开放,对修改封闭;
3.LSP(里式替换):父类特性在子类中要完全继承无变化,即在父类对象被替换为子类对象时无影响;
4.ISP(接口隔离):不同接口之间需要进行隔离;
5.DIP(依赖倒置):高层模块不能依赖底层模块,应都依赖于抽象;

并发

1.用Promises,不用回调函数callbacks(用async/await更好)

错误处理

1.不确定的代码需要try...catch...
2.不要忘了catch里的错误处理、reject里的错误处理

格式

1.驼峰、下划线、大小写都需要保持一致