新書推薦:
《
汉末晋初之际政治研究
》
售價:NT$
602.0
《
强者破局:资治通鉴成事之道
》
售價:NT$
367.0
《
鸣沙丛书·鼎革:南北议和与清帝退位
》
售價:NT$
551.0
《
从康德到黑格尔的发展:兼论宗教哲学(英国观念论名著译丛)
》
售價:NT$
275.0
《
突破不可能:用特工思维提升领导力
》
售價:NT$
352.0
《
王阳明大传:知行合一的心学智慧(精装典藏版)
》
售價:NT$
1010.0
《
失衡与重塑——百年变局下的中国与世界经济
》
售價:NT$
602.0
《
不被定义的年龄:积极年龄观让我们更快乐、健康、长寿
》
售價:NT$
352.0
|
內容簡介: |
文章的内容先是介绍函数式所属的技能树位置:编程范式,也介绍了各种范式在前端的体现。随后会过一批函数式的常见概念,给对函数式思想了解较少的同学一些基础内容。这两章节我理解对于基础较好的同学可能是老生常谈,但因为加入了一些前端示例和我的理解,也应该能算是老坛新酒。
了解完编程范式和基础概念后,我会直接进入“函数式思维”的内容。这章内容主要是帮助大家在依赖函数式框架工具设计时,从传统命令式编程的思考方式,向更契合函数式前端开发的方式改变。比如对循环的实现、数据结构的差别、对异常态和类型的处理等。
第四到七章,分别是前端函数式的几种重要的形态。第四章是Monadic编程,它是函数式的一种经典工程实现,也在前端衍生了一些工具。我将在这章把前端函数式的几个基础理论单元如函子、幺半群的介绍,用它们实现复杂工具Promise的推导,以及少量有必要介绍给大家的范畴论知识都详尽叙述。
第五章则是“从jQuery而来,看函数式工具形态演进”。很多其他领域工程师对前端的理解都停留在了jQuery的经典时代。我会从函数式的“形”的角度出发,带来jQuery开始的前端函数式工具论述。第六章和第七章我将介绍前端函数式发展到一定成熟度后,这两年的两个热门框架工具:RxJS和React Hook。介绍他们的基本原理和他们基于什么样的需求和过程演进出来的。文章的内容先是介绍函数式所属的技能树位置:编程范式,也介绍了各种范式在前端的体现。随后会过一批函数式的常见概念,给对函数式思想了解较少的同学一些基础内容。这两章节我理解对于基础较好的同学可能是老生常谈,但因为加入了一些前端示例和我的理解,也应该能算是老坛新酒。
了解完编程范式和基础概念后,我会直接进入“函数式思维”的内容。这章内容主要是帮助大家在依赖函数式框架工具设计时,从传统命令式编程的思考方式,向更契合函数式前端开发的方式改变。比如对循环的实现、数据结构的差别、对异常态和类型的处理等。
第四到七章,分别是前端函数式的几种重要的形态。第四章是Monadic编程,它是函数式的一种经典工程实现,也在前端衍生了一些工具。我将在这章把前端函数式的几个基础理论单元如函子、幺半群的介绍,用它们实现复杂工具Promise的推导,以及少量有必要介绍给大家的范畴论知识都详尽叙述。
第五章则是“从jQuery而来,看函数式工具形态演进”。很多其他领域工程师对前端的理解都停留在了jQuery的经典时代。我会从函数式的“形”的角度出发,带来jQuery开始的前端函数式工具论述。第六章和第七章我将介绍前端函数式发展到一定成熟度后,这两年的两个热门框架工具:RxJS和React Hook。介绍他们的基本原理和他们基于什么样的需求和过程演进出来的。
所以文章基本是两大部分,前三章的偏理论内容,和后四章的偏热门工具内容。也都是大家希望付出一定时间了解的热点内容。
*后一章,我想在总结的同时,回归初心,和大家探讨一些当前前端开发的核心复杂度,以及函数式在当前前端开发中的贡献。然后我们还要厘定方向,像多借鉴函数式思想一样,多借“他山之石”,帮助大家在前端和其他研发领域成为更出色的研发工程师。
|
關於作者: |
作者简介
邵丁丁,具备丰富工程经验的前端研发者,目前是阿里本地生活企业订餐技术部的前端负责人。他拥有十多年传统软件和互联网软件的开发经验,曾参与大型企业内部控制类软件(ERP系统、OA系统)、检测类工程软件,以及饿了么外卖十多条业务线的Web前端项目,对软件工程和架构有深刻的理解。
|
目錄:
|
前 言第1章 编程范式和前端体现11.1 编程范式21.2 命令式编程21.3 面向对象31.4 元编程41.5 声明式编程51.6 逻辑式编程61.7 函数式编程81.8 案例和代码91.8.1 案例总览91.8.2 命令式编程示例111.8.3 声明式编程示例111.8.4 面向对象、元编程和函数式编程示例131.9 本章小结15第2章 前端函数式基础概念162.1 JavaScript多范式中的函数式162.1.1 闭包172.1.2 高阶函数182.1.3 Lambda表达式192.1.4 Array数组集合和函数组合子202.2 持续补全212.2.1 基于JavaScript高阶函数的编码优化212.2.2 基于工具和标准的再加工242.3 函数式的抽象单元262.3.1 副作用272.3.2 引用透明和纯函数272.4 案例和代码282.4.1 闭包和单例282.4.2 数组方法和链式调用312.4.3 惰性加载322.5 本章小结33第3章 函数式思维和前端特征353.1 状态和副作用363.2 过程和高阶抽象383.2.1 便捷地对过程反复包装393.2.2 另一种编程世界观:流过系统的信息流403.3 运行环境承担更多的职责413.3.1 循环、映射和递归423.3.2 函数式过程抽象忽略的细节操作433.4 类型和数据结构443.4.1 面向能力的数据结构443.4.2 对场景下类型的作用进行替换463.5 设计模式和语言特征483.6 异常态493.7 前端的其他特征503.7.1 弱类型和动态类型513.7.2 Array的组合运算513.8 案例和代码523.8.1 状态和副作用示例523.8.2 过程和高阶抽象示例553.8.3 循环和递归示例563.8.4 类型检测和动态类型603.8.5 异常态和容错处理613.9 本章小结63第4章 Monadic编程和它的范畴理论644.1 Monadic编程简介644.2 函子和它的基础实例654.3 应用函子664.4 Maybe实现类684.5 Either函子714.6 幺半群734.7 单子:自函子范畴上的幺半群754.8 函数响应式编程774.9 案例和代码784.9.1 函子示例784.9.2 响应式编程的简单示例804.10 本章小结81第5章 函数式工具形态演进825.1 jQuery和链式调用825.2 管道和组合845.3 Promise编码875.4 AsyncAwait函数895.5 MobX、RxJS和响应式编程905.6 函数式的并发保障925.7 案例和代码945.7.1 链式调用和开发中调试945.7.2 Pipeline和切面编程955.7.3 AsyncAwait异步和异常965.8 本章小结97第6章 从RxJS看事件流和函数响应式编程996.1 RxJS的产生和事件流编程演进996.1.1 RxJS的产生1006.1.2 事件流响应演变1006.2 核心类1036.3 “红包雨掉落”代码改造1066.4 事件流相关主要方法举例1106.5 案例和代码1146.6 本章小结118第7章 React Hooks和它的函数式考量1207.1 无状态组件和状态管理1207.1.1 现代前端框架和无状态组件1217.1.2 状态管理1257.2 React Hooks的原理和目的1287.3 React Hooks的实践和方向1307.4 案例和代码1337.5 本章小结137第8章 函数式和前端复杂度总结1388.1 前端开发的复杂度1388.1.1 前端开发者可以介入的时机1398.1.2 纯粹的运算复杂度1428.1.3 前端和相邻领域复杂度的区别1428.2 函数式在前端的积极作用1448.2.1 厘清运行时的状态变化1458.2.2 加强编程的工程指标1458.2.3 简化编码1468.3 编码之上的工作1468.3.1 软件完整度和现实的工作状态1468.3.2 前端迭代的呼应1478.3.3 编码外的更多规划1488.4 他山之石1488.4.1 前端即是客户端1488.4.2 更充分地利用前端能力1498.4.3 工程研发1498.5 案例和代码1518.5.1 前端开发复杂度1518.5.2 运行时监控和整体工程特性1558.6 本章小结158第9章 简易关卡引擎项目补充1599.1 需求清单1599.2 项目和文件结构1619.3 开发者和用户交互1629.4 整体服务和引擎生命周期1629.5 代码清单1639.5.1 主页需求实现1639.5.2 关卡页需求实现1679.5.3 统计分数等数据服务逻辑1769.5.4 体力模式等前端业务逻辑1789.5.5 自定义关卡详情页1819.5.6 广告页和活动页1839.6 更多扩展1869.7 本章小结186
|
內容試閱:
|
为何写作本书本书的关键词是前端开发和函数式,重点阐述函数式在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与我交流。在此感谢阿里巴巴本地生活的前辈许红涛和企业订餐研发团队小伙伴们的大力支持,感谢张晓雪帮助促成本书的顺利出版。
|
|