Domain Modeling Made Functional
Scott Wlaschin is an F# expert, the author of the popular F# site fsharpforfunandprofit.com, and a member of the F# Software Foundation's board of directors. Scott is a popular speaker known for his non-academic approach to functional programming. He has spoken at NDC, F# Exchange, DDD Europe, and other conferences around the world.
You want higher customer satisfaction, shorter development cycles, and less work waste. The innovative combination of domain-driven design (DDD) and functional programming will get you there. In this practical, down-to-earth guide, you'll learn how applying functional programming's core principles can result in software designs that model real-world requirements elegantly and concisely - often more so than an object-oriented approach. Practical examples in the open-source F# functional language, as well as examples from well-known business domains, demonstrate how to use these techniques to create business-focused, flexible, and high-quality software.
Domain-driven design is a well-established approach to software design that ensures domain experts and developers work effectively together to create high-quality software. This is the first book to combine DDD with statically typed functional programming techniques. Domain Modeling Made Functional is ideal for those who are new to DDD or functional programming because it introduces and explains all of the techniques required.
Model a complex domain precisely with the F# type system, producing compilable code that is also readable documentation—-ensuring that the code and design are always in sync. Make illegal states unrepresentable by encoding business rules in the design and having "compile-time unit tests." Assemble a set of small, testable functions into a complete use case, and then combine these individual scenarios to create a large-scale design. Learn why combining functional programming and DDD naturally leads to service-oriented and hexagonal architectures. Finally, build a functional domain model that works with traditional databases, NoSQL, and event stores, and securely expose it via a website or API.
Solve real-world problems by focusing on real-world software requirements. The book is regarded as one of the best books on functional programming.
Author: Scott Wlaschin
Link to buy: https://www.amazon.com/Domain-Modeling-Made-Functional-Domain-Driven/dp/1680502549
Ratings: 4.7 out of 5 stars (from 226 reviews)
Best Sellers Rank: #455,263 in Books
#41 in Functional Software Programming
#180 in Data Modeling & Design (Books)
#197 in Object-Oriented Design