一、前言
本章内容主要为函数 命名, 结构, 和职责规范。
二、函数规范
- 短小 => 函数尽可能短小 10行的函数和100行的函数
- 只做一件事 => 五大原则之单一原则
- 每个函数一个抽象层级 => 五大原则之lsp依赖倒置原则
- swtich语句 => 避免swtich语句使用吧 虽然我之前很喜欢用
- 使用描述性名称 => 不排斥函数长名称
- 函数参数少于三个 => 避免带来过多变化
- 一元函数 => 一个参数
- 二元函数 => 两个参数
- 标示参数 => 传入Boolean值 ,不确定变化 不符合职责单一原则。(根据我的理解, 这应该只限于开发简单模块时可以这样做, 当需要一个大型项目时, 这样做会带来无数的碎片文件。很简单的一个例子就是ui框架, 里面很多的属性可以布尔值控制)
- 三元函数 => 三个参数
- 参数对象 => 过多参数时使用参数对象
- 参数列表 => 列表参数
- 函数名 => 动词或关键字
- 无副作用 => 避免多种行为重置数据 (这个使用vue框架应该有体会, 一个方法使用不当, 就要挠破头去找在哪修改了这个数据)
- 分隔指令 => if(set(‘name’, ‘aaa’)) 分隔成 if(‘name’) set(‘aaa’) [个人觉得这个规范不太好]
- 抛异常代替返回码 => 提示比较好
- 错误处理就是一件事
- 分离try catch块
- 别重复自己 => 对于重复逻辑 考虑新建函数 实现逻辑复用
- 结构化编程 => 单入单出原则, 但是在本书中作者认为保持短小的函数形式, 用return或其它返回语句并无弊处。
- 最后, 无需一开始就按照规则, 可以根据自己的情况慢慢优化代码
三、总结
优秀的代码像是在写故事一样, 我推崇写代码就和写诗一样, 有自己的意境, 却也是别人看得懂的。