Functional and Reactive Domain Modeling (英語) ペーパーバック – 2016/10/24
Kindle 端末は必要ありません。無料 Kindle アプリのいずれかをダウンロードすると、スマートフォン、タブレットPCで Kindle 本をお読みいただけます。
Functional and Reactive Domain Modeling teaches readers how to think of the domain model in terms of pure functions and how to compose them to build larger abstractions. It begins with the basics of functional programming and gradually progresses to the advanced concepts and patterns needed to implement complex domain models. The book demonstrates how advanced FP patterns like algebraic data types, typeclass based design, and isolation of side-effects can make models compose for readability and verifiability.
On the subject of reactive modeling, the book focuses on higher order concurrency patterns like actors and futures. It uses the Akka framework as the reference implementation and demonstrates how advanced architectural patterns like event sourcing and CQRS can be put to great use in implementing scalable models. It offers techniques that are radically different from the standard RDBMS based applications that are based on mutation of records. It also shares important patterns like using asynchronous messaging for interaction based on non blocking concurrency and model persistence, which delivers the speed of in- memory processing along with suitable guarantees of reliability.
Debasish Ghosh is a software architect with extensive experience in domain modeling. Debasish uses Scala and Akka in his daily work and was one of the earliest adopters of event sourcing using EventSourced, now called Akka Persistence. He's the author of DSLs in Action, published by Manning in 2010.
- What I appreciated the most about this book is the thorough and pragmatic approach taken by Debasish to weave three topics—each broad (and deep) in their own right—into a coherent narrative, copiously illustrated by high-quality code that you can load into your IDE (I used IntelliJ IDEA) and run.
- The quality of this book is nothing short of amazing. for any fellow programmer who has bludgeoned their head over how much math they need—specifically, category theory—to really grok how to use these mathematical concepts of category theory in their daily programming—and apply salve to your hurting head—this book is a balm.
- For a more-detailed review, checkout my post by searching on the keywords "Programming Digressions Best Reactive Programming Books"
However, this book is not for beginners as most parts of the book can dive in to (pretty) advanced functional programming concepts like Lenses and Free Monads, but for intermediate to advanced Scala and functional programming aficionados this book is heaven-sent.
Note: I was, at least early on, a technical reviewer for this book. However, I receive no compensation for the ultimate success of this work. I simply believe it's an incredibly useful and important guide and want to ensure others are aware of it.
This books closes this void! That being said, you should get these two books to fully understand the concept and get some great examples to break the door into the functional programming area.
The examples in the book are real world examples that make sense.