1.function-purity.md

funciton-purity

function and procedures

  1. 函数: 有输入, 有输出
  2. 程序: 没有输出, 只是在代码段中做了一些事

语义化函数命名

因为函数式编程倾向于声明式编程, 那么对于函数名就要简明易懂.

函数名称的重要性不亚于, 数学中, 公式对应的图像.

副作用

副作用就是, 在函数内部改变了外部变量(包括dom).
常见副作用:

  1. I/O操作(console/file)
  2. 数据库操作
  3. 网络请求调用
  4. DOM操作
  5. Timestamps
  6. 随机数
  7. Cup heat
  8. Cup time Delay

原则: 我们尽量避免副作用,但是,如果无法避免, 那么就让副作用明显一点, 让阅读代码的人看得到.

纯函数和常量

  1. 没有副作用
  2. 没有外部依赖

reducing surface Area

减少可以产生副作用的行为.不要对参数有赋值的念头.

纯函数的确定性: 同样输入,固定输出.

绝对不纯函数