Domain Modeling Made Functional: Tackle Software Complexity with Domain-Driven Design and F#
by: Scott Wlaschin
ISBN-10 书号： 1680502549
ISBN-13 书号： 9781680502541
Edition 版次： 1
Release Finelybook 出版日期： 2018-02-04
pages 页数： 312
You want increased customer satisfaction,faster development cycles,and less wasted work. Domain-driven design (DDD) combined with functional programming is the innovative combo that will get you there. In this pragmatic,down-to-earth guide,you’ll see how applying the core principles of functional programming can result in software designs that model real-world requirements both elegantly and concisely – often more so than an object-oriented approach. Practical examples in the open-source F# functional language,and examples from familiar business domains,show you how to apply these techniques to build software that is business-focused,flexible,and high quality.
Domain-driven design is a well-established approach to designing software that ensures that domain experts and developers work together effectively to create high-quality software. This book is the first to combine DDD with techniques from statically typed functional programming. This book is perfect for newcomers to DDD or functional programming – all the techniques you need will be introduced and explained.
Model a complex domain accurately using the F# type system,creating compilable code that is also readable documentation—ensuring that the code and design never get out of sync. Encode business rules in the design so that you have “compile-time unit tests,” and eliminate many potential bugs by making illegal states unrepresentable. Assemble a series of small,testable functions into a complete use case,and compose these individual scenarios into a large-scale design. Discover why the combination of functional programming and DDD leads naturally to service-oriented and hexagonal architectures. Finally,create a functional domain model that works with traditional databases,NoSQL,and event stores,and safely expose your domain via a website or API.
Solve real problems by focusing on real-world requirements for your software.
What You Need:
The code in this book is designed to be run interactively on Windows,Mac and Linux.You will need a recent version of F# (4.0 or greater),and the appropriate .NET runtime for your platform.Full installation instructions for all platforms at fsharp.org.