从今年三月份开始,我在前端的学习路径是:

  1. JavaScript 函数式编程(Lisp、Haskell 开发者轻喷)
  2. 函数响应式编程:FRP,这一块主要是以学习 Rxjs 为主
  3. 函数式编程和函数响应式编程的应用:这一块主要是以学习 Cycle.js 为主

期间完成过、或者正在完成的一些内容有,这当中有一部分是和我所在前端学习小组 –前端病人 一起完成的:

  1. JavaScript 函数式编程手札(未完)
  2. With or without fp – 用函数式编程重构代码
  3. Cycle.js 基础 21 讲
  4. 深入 RxJS 的 Subject
  5. Cycle.js 实现一个 Modal
  6. Cycle.js 实现一个 TodoMvc
  7. 使用 Cycle.js 完成了鹅厂封陪 Mini 项目中 Web 前端部分,算是一个有体积的应用了

这五个月的产出的内容达到了我预设的目标,毕竟在此期间,我还要照顾自己的硕士毕业论文,以及填坑自己的另外一本 Gitbook:斯坦福机器学习笔记

去年分析 underscore 源码、redux 源码,算是把我带入了 JavaScript 函数式编程的大门。函数式编程起码从语法风格来说,会是大势,它未必需要深入的 mostly-adequate-guide 中的定义各个 Functor 或者 Monad,但是 pure function,pointfree,curring,compose 这些优良特性带来了 Eric Elliot 大神提出的 组合式软件编写 。在目前的一些工程中,我都受益于组合式软件编写,逻辑和副作用开始分离,更多的函数通过基本的函数线性组合产生,我的业务代码,我的工具函数包都变得更加可靠和易于测试。逐渐,我开始用 pointfree 的 ramda 替换掉 pointful 的 lodash。

七月份最大的兴奋除了正式入职,就是看到了 Cycle.js 中文社区的建立,自己也能加入进去。我一直都更喜欢团队作战,一方面,团队能够约束我个人,不浮躁,另一方面,团队的技术圈子可以带来交流,可以带来目标。技术本就不应该冷静,因为团队,它会变得像人一样火热,即便它会遭受潮水般的质疑,那也胜过人变得冷漠,技术被不闻不问,在冷静中死掉。

接下来,会首先总结一下这次 Cycle.js 在 Mini 项目中的实战记录,不同于从 jQuery 过渡到 Vue 或者 React 时的小激动,Cycle.js 给了我更多的兴奋点,在使用 Cycle.js 构建前端应用的时候,思路和实现都可以说是颠覆式的。我需要记录下这次过程,希望能分享给他人,也防止记性不好的我再踩一些同样的坑。

之后,会一直跟进 Cycle.js,跟进 stalz 的动作,跟进 Cycle 中文社区其他的小伙伴,加油。