Rating: Not rated
Tags: Computers, Systems Architecture, General, Software Development & Engineering, Tools, Data Modeling & Design, Lang:en
Publisher: Pragmatic Bookshelf
Added: November 9, 2020
Modified: November 5, 2021
Summary
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.