《函数式设计:原则、模式与实践》[美] 罗伯特 ・ C. 马丁(Robe | PDF下载|ePub下载
函数式设计:原则、模式与实践 版权信息
- 出版社:机械工业出版社
- 出版时间:2024-07-01
- ISBN:9787111757818
- 条形码:9787111757818 ; 978-7-111-75781-8
函数式设计:原则、模式与实践 本书特色
本书是一本介绍用函数式编程方式编写更好、更整洁代码的实用指南。在本书中,著名软件工程师Robert C. Martin(Bob大叔)解释了为何使用函数式编程,以及如何做才能为客户构建更好的系统。Bob大叔将Java中传统的面向对象的编程结构与函数式语言所支持的编程结构进行了对比,确定了每种结构的作用,并展示了如何明智地在合理上下文中使用两者来构建更好的系统。
作风务实的Bob大叔能用*少的理论讲清并解决“真刀真枪”的实战问题。通过易于理解的示例,开发人员能发现易于学习且语义丰富的Clojure语言如何帮助他们提高代码的整洁性、设计性、纪律性和成效性。Bob大叔还从函数式的视角研究了著名的SOLID原则和GOF设计模式,揭示了模式对于函数式程序员仍极具价值的原因,以及使用它们来实现卓越成效的方法。
通过阅读本书,你将能够:
?理解函数式编程基础:不变性、持久性数据、递归、迭代、惰性和状态性;
?通过精心设计的案例研究对比函数式方法和面向对象方法;
?探索数据流的函数式设计技术;
?使用经典的SOLID原则编写更好的Clojure代码;?
?掌握实现函数式测试、GUI和并发性的实用方法;
?在函数式编程中充分利用设计模式;
逐步构建企业级Clojure应用程序。
函数式设计:原则、模式与实践 内容简介
在本书中,有名软件工程师罗伯特・C. 马丁(Robert C. Martin,”鲍勃大叔”)解释了如何以及为什么使用函数式编程为真实客户构建更好的系统。作者将 Java 中传统的面向对象编码结构与函数式语言所支持的编码结构进行了比较,确定了每种结构的很好作用,并展示了如何在特定环境中明智地使用这些结构来构建更好的系统。
函数式设计:原则、模式与实践 目录
题 献
推荐序
译者序
序
前 言
致 谢
作者简介
**部分 函数式基础
第1章 不变性 2
1.1 什么是函数式编程 3
1.2 赋值的问题 5
1.3 为什么叫它“函数式” 7
1.4 没有状态改变吗 8
1.5 不变性概念 11
第2章 持久性数据 12
2.1 关于瞒天过海 14
2.2 制作副本 14
2.3 结构共享 16
第3章 迭代和递归 19
3.1 迭代 20
3.1.1 极简Clojure教程 20
3.1.2 迭代概述 22
3.1.3 TCO、Clojure和JVM 22
3.2 递归 23
第4章 惰性 26
4.1 惰性累积 28
4.2 为何需要惰性 28
4.3 尾声 29
第5章 状态性 30
5.1 何时必须“可变” 33
5.2 软件事务内存 34
5.3 生活不易,软件更难 36
第二部分 比较性分析
第6章 质因数练习 39
6.1 Java版 40
6.2 Clojure版 43
6.3 总结 45
第7章 保龄球练习 46
7.1 Java版 47
7.2 Clojure版 51
7.3 总结 54
第8章 八卦公交司机练习 56
8.1 Java版 57
8.1.1 公交司机文件 62
8.1.2 行车线路文件 62
8.1.3 公交车站文件 63
8.1.4 八卦故事文件 64
8.1.5 模拟过程文件 64
8.2 Clojure版 65
8.3 总结 69
第9章 面向对象编程 70
9.1 函数式工资问题解决方案 72
9.2 命名空间与源文件 78
9.3 总结 78
第10章 类型 80
第三部分 函数式设计
第11章 数据流 86
第12章 SOLID 92
12.1 单一职责原则 93
12.2 开闭原则 96
12.2.1 函数 97
12.2.2 带虚表的对象 98
12.2.3 多重方法 98
12.2.4 独立部署 99
12.3 里氏替换原则 101
12.3.1 ISA原则 103
12.3.2 这不对 105
12.3.3 代表原则 106
12.4 接口隔离原则 106
12.4.1 不需要就别依赖 108
12.4.2 为什么 108
12.4.3 总结 109
12.5 依赖倒置原则 109
12.5.1 回忆杀 111
12.5.2 违背依赖倒置原则 119
12.5.3 总结 129
第四部分 函数式实用主义
第13章 测试 132
13.1 REPL 133
13.2 Mock 133
13.3 基于性质的测试 134
13.4 诊断技术 137
13.5 函数式 143
第14章 GUI 144
第15章 并发性 155
第五部分 设计模式
第16章 设计模式回顾 165
16.1 函数式编程中的模式 167
16.2 抽象服务器模式 168
16.3 适配器模式 170
16.4 命令模式 174
16.5 组合模式 178
16.6 装饰器模式 186
16.7 访问者模式 189
16.7.1 To Close or to Clojure 191
16.7.2 90°问题 193
16.8 抽象工厂模式 196
16.8.1 90°问题重现 199
16.8.2 类型安全吗 201
16.9 总结 201
16.10 补充:面向对象是毒药吗 201
第六部分 案 例 研 究
第17章 Wa-Tor小游戏 204
17.1 如鲠在喉 220
17.2 解决问题 222
17.3 让鱼疯狂繁殖 230
17.4 对于鲨鱼 231
17.5 总结 240
后记 242
函数式设计:原则、模式与实践 作者简介
Robert C. Martin(Bob大叔),世界著名编程大师,敏捷开发和设计模式先驱,从事软件开发相关工作超过50年。他是“SOLID五大原则”的奠基人、“敏捷宣言”联合签署人、“敏捷联盟”首任主席、C Report杂志前主编。他发表了大量有影响力的文章,并经常受邀在许多国际软件大会上发表演讲。他创立了Uncle Bob Consulting有限责任公司,并与儿子Micah Martin共同创立了Clean Coders有限责任公司。他还是Clean Code、Clean Architecture和The Clean Coder等多本畅销书籍的作者,本书是他最新的作品。