绿林网

《函数响应式领域建模》的读后感大全

《函数响应式领域建模》的读后感大全

《函数响应式领域建模》是一本由【美】Debasish Ghosh著作,电子工业出版社出版的平装图书,本书定价:79,页数:296,特精心收集的读后感,希望对大家能有帮助。

《函数响应式领域建模》读后感(一):函数式编程工程实践神书,强烈推荐

如果你学过带类型函数式编程(Typed Functional Programming)又苦于不知如何应用,那这本书将十分适合你。

这本书以Scala为例,提出了一种函数式的DDD设计方法——通过分离代数(algebra)与实现,设计出可组合、可推导、易测试的系统。这种设计方法具有普适性,同样适用于Rust、Haskell...

缺点嘛,这本书出版有点久了,用的scala和akka版本较低。特别是akka,与新版api差异很大(2021-04-05),我都是浏览过去。

《函数响应式领域建模》读后感(二):读书 | 《函数响应式领域建模》

说来惭愧,这本书是凑单的时候顺手买的,正所谓“买书如山倒,读书如抽丝”,买了以后就一直放着吃灰。上周末随手一翻,我去,还挺有趣!于是用两个周末 + 一周的空闲时间把这本书读完了。 本书主要涉及三个方面的内容: * 领域驱动设计 * 函数式编程 * 反应式设计 并以个人银行为例,将三者有机地结合到了一起。 我读书速度是比较慢的,但我对后两个主题还算比较了解,所以很快就读完了,不过如果你对函数式编程(类型系统、typeclass 等)不了解,这书估计是读不下去的 :) 如果你学过 Scala,熟悉函数式编程,对 typeclass 有所了解,但不知道如何把这些貌似高深的 functor、applicative、monad 和 free monad 等用于实际的领域建模,那不用犹豫,马上买一本回家,第 3、4、5 章会告诉你你疑惑的一切。 如果你精通函数式编程,但不了解 Akka,这书也可以充当 Akka 的入门书,第 6、7、8 章会介绍如何用 Akka Stream 建模,以及如何实现 CQRS(命令查询责任分离)和 Event Sourcing(事件溯源)。 第九章以 ScalaCheck 为例普及了下基于属性的测试,只用过 JUnit 的同学可以拿来开开眼界,《Scala 函数式编程》专门用一章实现了一个类似的测试框架,有兴趣的读者可以看看。 最后关于翻译质量,我在阅读过程中,大约发现有 20+ 处翻译错误,比如 ad-hoc polymorphism 翻译成“自组织多态性”、抛出异常翻译成“抛出例外”等等,因此最好带着批判的眼光阅读,综合打 75 分吧。

《函数响应式领域建模》读后感(三):Think More, Write Less

这本书名为 Functional And Reactive Domain Modeling,主要是将 DDD (Domain Driven Design)、Functional Programming 和 Reactive Pattern 整合在一起应用在分布式环境中,这个话题本身是非常有趣的,尤其是当下 IoT 行业正在成形的当下,我们或许需要一种能够应对真实世界中持续变化的业务,同时支持大数据的流式响应,最好足够优雅、可靠的编程范式。

老实说,这本书的阅读体验并不好,倒不是书本身的问题,而是我对 Functional Programming 的一些概念理解得太浅薄了。而本书 FP 的比重极高(以至于对 DDD 和 React 讲得很浅),且在讲解领域模型的函数式模式时高度依赖于 scalaz 这个库,导致看到 5.5 引入 Free Monad 概念的时候彻底蒙圈了——我不得不先去看了《Functional Programming in Scala》的第一部分,才算是比较顺畅地继续读了下来。

本书非常强调如何应用 FP 在底层遵循某些原则进行合适的抽象,比如:将参数 Currying 便于依赖注入或测试,利用 Functor、Applicative 和 Monad 构建 ADT (Abstract Data Type),使用 Typeclass 和 Free Monad 模块化代数,基于 Trait 和 Kleisli Arrow 形成强大、简洁的组合器。这对我来说还是蛮新鲜的一件事:此前我惯常使用 Java 实践 DDD,确实偶尔会遇到因为语言本身表现力不足导致某些实现过于「笨拙」的情况;虽然 Java 的简单质朴对于绝大多数工程实践来说都已经足够,但掌握 FP 的设计模式应用在实际工程中还是蛮有诱惑力的一件事。

本书虽然讨论了响应式模型,并引入 Akka Stream 进行流建模,或是应用在 CQRS 和 Event Sourcing 中,但只是点到为止。此外,由于篇幅限制,本书没有深入阐述 FP 中设计模式的本质,只是探讨了应用时的基本原则。但是引用资料非常丰富,我并没有一一查看,只当做一个引子,之后再深入了解。

本书结尾的展望部分,也提及 Scala 在数学验证模型领域并不是那么「纯粹」、Shapeless 的实现略显冗长,或许 Haskell 是一个更令人期待的方案——我想这对于实际技术栈,尤其是对接海量的外界组件是一个巨大的挑战,但是 think more and write less 确实是足够优雅的编码方式。

本文由作者上传并发布(或网友转载),绿林网仅提供信息发布平台。文章仅代表作者个人观点,未经作者许可,不可转载。
点击查看全文
相关推荐
热门推荐