函数式编程学习资料汇总

Posted 里皮时光机

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了函数式编程学习资料汇总相关的知识,希望对你有一定的参考价值。


面向对象编程(OOP)通过封装变化使得代码更易理解。函数式编程(FP)通过最小化变化使得代码更易理解。—— Michacel Feathers(Twitter)

总所周知 javascript 是一种拥有很多共享状态的动态语言,慢慢的,代码就会积累足够的复杂性,变得笨拙难以维护。面向对象设计能帮我们在一定程度上解决这个问题,但是还不够。

由于有很多的状态,所以处理数据流和变化的传递显得尤为重要,不知道你们知道响应式编程与否,这种编程范式有助于处理 JavaScript 的异步或者事件响应。总之,当我们在设计应用程序的时候,我们应该考虑是否遵守了以下的设计原则。

  • 可扩展性--我是否需要不断地重构代码来支持额外的功能?

  • 易模块化--如果我更改了一个文件,另一个文件是否会受到影响?

  • 可重用性--是否有很多重复的代码?

  • 可测性--给这些函数添加单元测试是否让我纠结?

  • 易推理性--我写的代码是否非结构化严重并难以推理?

我这能这么跟你说,一旦你学会了函数式编程,这些问题迎刃而解,本来函数式编程就是这个思想,一旦你掌握了函数式,然后你再学习响应式编程那就比较容易懂了,


学习资料整理

Eric Elliott 函数式教程

  • 征服 JavaScript 面试: 什么是函数式编程?

  • 组合软件:1. 函数式编程的兴衰

  • 为什么用 JavaScript 学习函数式编程?(软件编写)(第二部分)

  • 函数式程序员的 JavaScript 简介 (软件编写)(第三部分)

  • 高阶函数(软件编写)(第四部分)

  • Reduce(软件编写)(第五部分)

  • Functor 与 Category (软件编写)(第六部分)

  • 函数式 Mixin(软件编写)(第七部分)

  • 为什么在使用了类之后会使得组合变得愈发困难(软件编写)(第九部分)

  • 借助函数完成可组合的数据类型(软件编写)(第十部分)

  • JavaScript 让 Monad 更简单(软件编写)(第十一部分)


JavaScript 轻量级函数式编程

  • JavaScript 轻量级函数式编程


Starkwang.log

  1. JavaScript函数式编程(一)

  2. JavaScript函数式编程(二)

  3. JavaScript函数式编程(三)


如果你想成为函数式编程爱好者

  1. 如何成为一位函数式编程爱好者(Part 1)

  2. 如何成为一位函数式编程爱好者(Part 2)

  3. 如何成为一位函数式编程爱好者(Part 3)

  4. 如何成为一位函数式编程爱好者(Part 4)

  5. 如何成为一位函数式编程爱好者(Part 5)

  6. 如何成为一位函数式编程爱好者(Part 6)


书籍

  • 《JavaScript 函数式编程指南》推荐

  • 《JavaScript 函数式编程思想》推荐

  • 《JavaScript ES6 函数式入门经典》看了上面两本这本就不用买了

  • 《JavaScript 函数式编程》


相关库

  • https://folktale.origamitower.com/

  • https://github.com/fantasyland/fantasy-land

  • http://ramda.cn/

  • http://lodash.think2011.net/

以上是关于函数式编程学习资料汇总的主要内容,如果未能解决你的问题,请参考以下文章

java函数式编程汇总

java函数式编程汇总

java函数式编程汇总

java函数式编程技巧汇总

java函数式编程技巧汇总

函数式编程--为什么要学习函数式编程?