-
内容大纲
本书是一本向程序员介绍如何有效使用函数式编程语言的实用指南。它侧重于现实世界中的应用,避免深入探讨Monads、Monoids、Functors和Categories等理论方面的内容,因为这些内容已经集成到常用语言、库和框架中。相反,本书强调如何以及为什么要在日常软件开发中使用函数式编程,书中比较了Java等面向对象语言和Clojure等函数式语言的编码结构。之所以选择这些语言,是因为它们使用广泛(Java)且简单(Clojure)。
本书还重点描述了用函数式方法构建系统的设计和架构原则,书中使用了统一建模语言(Unified Modeling Language,UML)图,并参考了软件设计的SOLID原则、设计模式,以及整洁架构的概念。 -
作者介绍
罗伯特·C.马丁(Robert C.Martin),世界级软件开发大师,设计模式和敏捷开发先驱,敏捷联盟首任主席,C++ Report杂志前主编。他从20世纪70年代起就是一名程序员,被后辈程序员尊称为“鲍勃大叔”(Uncle Bob)。 他是Clean Coders网站的创始人,这个网站为软件开发者提供在线视频培训。他也是“鲍勃大叔咨询公司”(Uncle Bob Consulting LLC)的创始人,这家公司为世界各地的大企业提供软件咨询、培训和技能发展服务。 他的著作有《代码整洁之道》《代码整洁之道:程序员的职业素养》《敏捷整洁之道:回归本源》《架构整洁之道》《敏捷软件开发:原则、模式与实践》等。 -
目录
第一部分 函数式基础
第1章 不变性
什么是函数式编程
赋值的问题
为什么叫它“函数式”
没有状态改变吗
不变性概念
第2章 持久性数据
关于瞒天过海
制作副本
结构共享
第3章 递归和迭代
迭代
极简Clojure教程
迭代概述
TCO、Clojure和JVM
递归
第4章 惰性
惰性累积
为何需要惰性
尾声
第5章 状态性
何时必须“可变”
软件事务内存
生活不易,软件更难
第二部分 比较性分析
第6章 质因数练习
Java版
Clojure版
总结
第7章 保龄球练习
Java版
Clojure版
总结
第8章 八卦公交司机练习
Java版
公交司机文件
行车线路文件
公交车站文件
八卦故事文件
模拟过程文件
Clojure版
总结
第9章 面向对象编程
函数式工资问题解决方案
命名空间与源文件
总结
第10章 类型
第三部分 函数式设计
第11章 数据流
第12章 SOLID
单一职责原则
开闭原则
函数
带虚表的对象
多重方法
独立部署
里氏替换原则
ISA原则
这不对
代表原则
接口隔离原则
不需要就别依赖
为什么
总结
依赖倒置原则
回忆杀
违背依赖倒置原则
总结
第四部分 函数式实用主义
第13章 测试
REPL
Mock
基于性质的测试
诊断技术
函数式
第14章 GUI
用Quil进行海龟绘图
第15章 并发性
总结
第五部分 设计模式
第16章 设计模式回顾
函数式编程中的模式
抽象服务器模式
适配器模式
那真的是适配器对象吗
命令模式
撤销
组合模式
函数式
装饰器模式
访问者模式
To Close or to Clojure
90°问题
抽象工厂模式
90°问题重现
类型安全吗
总结
补充:面向对象是毒药吗
第六部分 案例研究
第17章 Wa-Tor小游戏
如鲠在喉
解决问题
让鱼疯狂繁殖
对于鲨鱼
总结
后记
索引
同类热销排行榜
- C语言与程序设计教程(高等学校计算机类十二五规划教材)16
- 电机与拖动基础(教育部高等学校自动化专业教学指导分委员会规划工程应用型自动化专业系列教材)13.48
- 传感器与检测技术(第2版高职高专电子信息类系列教材)13.6
- ASP.NET项目开发实战(高职高专计算机项目任务驱动模式教材)15.2
- Access数据库实用教程(第2版十二五职业教育国家规划教材)14.72
- 信号与系统(第3版下普通高等教育九五国家级重点教材)15.08
- 电气控制与PLC(普通高等教育十二五电气信息类规划教材)17.2
- 数字电子技术基础(第2版)17.36
- VB程序设计及应用(第3版十二五职业教育国家规划教材)14.32
- Java Web从入门到精通(附光盘)/软件开发视频大讲堂27.92
推荐书目
-
孩子你慢慢来/人生三书 华人世界率性犀利的一枝笔,龙应台独家授权《孩子你慢慢来》20周年经典新版。她的《...
-
时间简史(插图版) 相对论、黑洞、弯曲空间……这些词给我们的感觉是艰深、晦涩、难以理解而且与我们的...
-
本质(精) 改革开放40年,恰如一部四部曲的年代大戏。技术突变、产品迭代、产业升级、资本对接...