前言

为何写作本书

本书的关键词是前端开发和函数式,重点阐述函数式在Web前端的重要作用和演进。

Web前端系统的核心逻辑已经从简单的静态展示和交互,演进为面向用户的多入口交互响应,以及随之产生的事件流。近代软件系统主流的命令式编程和信息数据管理模式,有时已不能满足当前场景的前端开发需求,而函数式非常契合这些需求,因而受到前端开发者的欢迎。

近年来,随着前端工程化发展逐渐成熟,前端开发领域的大部分工具和框架都引入了函数式的特性,并借鉴了其中的一些思想。这些框架和工具涵盖了早期工具库,如jQuery、Lodash,以及近几年互联网公司普遍使用的React、状态管理等,使得函数式成为Web开发领域重要的技术。

本书旨在和大家分享、探讨前端函数式的知识,尤其是结构化的前端函数式知识、前端受到函数式影响的内容以及背后一些相关领域的知识,希望能帮助大家系统地掌握前端函数式开发方法。

本书主要内容

本书从逻辑上分为三部分。

第一部分(第1~3章)是全书的理论基础。

第1章介绍编程语言中的编程范式以及各种范式在前端的体现。第2章介绍函数式的常见概念。这两章的内容对于基础较好的读者来说可能是老生常谈,但是我加入了一些前端示例和个人理解,也算是老坛装新酒。

第3章介绍函数式思维的相关内容,帮助读者在使用函数式框架工具时从传统命令式编程的思考方式,向更契合函数式前端开发的思考方式转变,比如对循环的实现、数据结构的差别、对异常态和类型的处理等。

第二部分(第4~7章)以实际的工具内容为主,分别介绍前端函数式的几种重要形态。

第4章介绍Monadic编程,这是函数式的一种经典工程实现,也在前端衍生了一些工具。在这一章我们将学习工程理论的几个基础单元,如函子、幺半群,并进行一些实用性的分析和推导。

第5章从jQuery出发,介绍函数式工具形态演进。很多研发工程师对前端的理解都停留在jQuery的经典时代,本章从函数式“形”的角度出发,介绍前端函数式工具。

第6章和第7章将介绍前端函数式的两个热门框架工具——RxJS和React Hooks,展示它们的基本原理以及演进过程。

第三部分(第8章和第9章)是本书的总结部分。

第8章回归初心,探讨前端开发的核心复杂度,以及函数式在前端开发中的贡献。希望读者能像借鉴函数式思想一样,多借“他山之石”,在前端和其他研发领域成为更出色的工程师。

第9章梳理本书项目的整体情况,并展现一些核心代码,帮助读者通过代码完成知识的落地和沉淀。

本书读者对象

本书内容围绕前端开发领域,列举的实例多基于前端框架和工具等方面,所以更适合中高级前端开发者和对前端生态有所了解的程序员阅读。

本书内容特色

本书除了介绍前端和函数式的基本概念及工具,还配有较多示例,可以帮助读者理解这些理论内容和工具并应用到实践中。除此之外,我将个人对这些理论演进的理解融入本书,希望能对读者建立知识体系有一定的帮助。

勘误和致谢

由于水平有限,书中难免有理解错误和说法欠妥的地方,恳请读者指正。欢迎发送邮件至sddhuhu1205@163.com与我交流。

在此感谢阿里巴巴本地生活的前辈许红涛和企业订餐研发团队小伙伴们的大力支持,感谢张晓雪帮助促成本书的顺利出版。