商品详情
在本书中,著名软件工程师Bob大叔解释了为何使用函数式编程,以及如何做才能为客户构建更好的系统。Bob大叔将Java中传统的面向对象的编程结构与函数式语言所支持的编程结构进行了对比,确定了每种结构的作用,并展示了如何明智地在合理上下文中使用两者来构建更好的系统。作风务实的Bob大叔能用最少的理论讲清并解决“真刀真枪”的实战问题。通过易于理解的示例,开发人员能发现易于学习且语义丰富的Clojure语言如何帮助他们提高代码的整洁性、设计性、纪律性和成效性。Bob大叔还从函数式的视角研究了著名的SOLID原则和GOF设计模式,揭示了模式对于函数式程序员仍极具价值的原因,以及使用它们来实现卓越成效的方法。通过阅读本书,你将能够:?理解函数式编程基础:不变性、持久性数据、递归、迭代、惰性和状态性;?通过精心设计的案例研究对比函数式方法和面向对象方法;?探索数据流的函数式设计技术;?使用经典的SOLID原则编写更好的Clojure代码;? 掌握实现函数式测试、GUI和并发性的实用方法;?在函数式编程中充分利用设计模式;?逐步构建企业级Clojure应用程序。 罗伯特·C. 马丁(Bob大叔)世界著名编程大师,敏捷开发和设计模式先驱,从事软件开发相关工作超过50年。他是“SOLID五大原则”的奠基人、“敏捷宣言”联合签署人、“敏捷联盟”首任主席、C十十 Report杂志前主编。他发表了大量有影响力的文章,并经常受邀在许多国际软件大会上发表演讲。他创立了Uncle Bob Consulting有限责任公司,并与儿子Micah Martin共同创立了Clean Coders有限责任公司。他还是Clean Code、Clean Architecture和The Clean Coder等多本畅销书籍的作者。 本书是一本向程序员介绍如何有效使用函数式编程语言的实用指南。它侧重于现实世界中的应用,避免深入探讨Monads、Monoids、Functors和Categories等理论方面的内容,因为这些内容已经集成到常用语言、库和框架中。相反,本书强调如何以及为什么要在日常软件开发中使用函数式编程,书中比较了Java等面向对象语言和Clojure等函数式语言的编码结构。之所以选择这些语言,是因为它们使用广泛(Java)且简单(Clojure)。 本书还重点描述了用函数式方法构建系统的设计和架构原则,书中使用了统一建模语言(Unified Modeling Language,UML)图,并参考了软件设计的SOLID原则、设计模式,以及整洁架构的概念。 目 录第一部分 函数式基础第1章 不变性3什么是函数式编程4赋值的问题7为什么叫它“函数式”10没有状态改变吗12不变性概念15第2章 持久性数据17关于瞒天过海19制作副本20结构共享23第3章 递归和迭代27迭代28极简Clojure教程29迭代概述32TCO、Clojure和JVM32递归32第4章 惰性37惰性累积40为何需要惰性41尾声42第5章 状态性43何时必须“可变”47软件事务内存48生活不易,软件更难51第二部分 比较性分析第6章 质因数练习55Java版56Clojure版60总结63第7章 保龄球练习65Java版66Clojure版71总结75第8章 八卦公交司机练习77Java版78公交司机文件84行车线路文件85公交车站文件85八卦故事文件86模拟过程文件87Clojure版88总结93第9章 面向对象编程95函数式工资问题解决方案98命名空间与源文件107总结108第10章 类型109第三部分 函数式设计第11章 数据流117第12章 SOLID125单一职责原则126开闭原则131函数133带虚表的对象134多重方法135独立部署136里氏替换原则138ISA原则142这不对145代表原则146接口隔离原则147不需要就别依赖150为什么151总结151依赖倒置原则152回忆杀155违背依赖倒置原则165总结179第四部分 函数式实用主义第13章 测试183REPL184Mock184基于性质的测试186诊断技术190函数式197第14章 GUI199用Quil进行海龟绘图200第15章 并发性215总结225第五部分 设计模式第16章 设计模式回顾229函数式编程中的模式233抽象服务器模式233适配器模式236那真的是适配器对象吗241命令模式242撤销245组合模式249函数式254装饰器模式260访问者模式264To Close or to Clojure26790°问题270抽象工厂模式27490°问题重现279类型安全吗281总结281补充:面向对象是毒药吗282第六部分 案例研究第17章 Wa_Tor小游戏287如鲠在喉309解决问题312让鱼疯狂繁殖322对于鲨鱼324总结335后记337索引341
- 新华一城书集 (微信公众号认证)
- 上海新华书店官方微信书店
- 扫描二维码,访问我们的微信店铺
- 随时随地的购物、客服咨询、查询订单和物流...