我们的目的是 可读性强+可维护的代码。
函数式的编程方式只是其中之一。
在入门阶段 要明白数据处理“流”的概念。还要明白声明式的写法是什么样的。
一个待处理的数据,经过多个函数的加工处理,最终得到output的过程。
最简单的优化方法:抽象(拆分)-》组合-》构建输入输出
1.命令式的代码中抽象出子程序(即函数)
这里仅仅抽象出一个函数就可以了,而不用管是否符合函数式的定义。
这里说的子程序也就像代码大全第七章里面的提到的子程序一样。
2.将函数组合起来 f(g(h(x)))
这里的组合方式有很多种。
理解了上面的东西,这里有有一篇阮一峰写的 pointfree编程风格链接,
第二点:
在函数式的学习过程中会用到很多辅助函数(形式为HOF)。
这些函数都仅仅是一种行为的抽象。因为抽象所以可能暂时难以理解。可以先不了解其内部实现的机制,先从宏观上去了解其作用就行。
例如:pipe compose partial curry 等
为什么要了解 immutable
const is just about assignment immutability
what we want is value immutability