Domain modeling made functional : tackle software complexity with domain-driven design and F# / Scott Wlaschin

By: Contributor(s): Material type: TextPublication details: North Carolina : The Pragmatic Bookshelf, ©2018Description: xiii, 290 pages : illustrations ; 24 cmContent type:
  • text
Media type:
  • unmediated
Carrier type:
  • volume
Subject(s): LOC classification:
  • QA76.76.D47 WLA
Contents:
Content notes Part 1. Understanding the domain. Introducing domain-driven design -- Understanding the domain -- A functional architecture -- Part 2. Modeling the domain. Understanding types -- Domain modeling with types -- Integrity and consistency in the domain -- Modeling workflows as pipelines -- Part 3. Implementing the model. Understanding functions -- Implementation : composing a pipeline -- Implementation : working with errors -- Serialization -- Persistence -- Evolving a design and keeping it clean
Summary: 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.
Item type: Books
Tags from this library: No tags from this library for this title. Log in to add tags.
Star ratings
    Average rating: 0.0 (0 votes)
Holdings
Cover image Item type Current library Home library Collection Shelving location Call number Materials specified Vol info URL Copy number Status Notes Date due Barcode Item holds Item hold queue priority Course reserves
Books GSU Library Epoch General Stacks General Collection QA76.76.D47 WLA (Browse shelf(Opens below)) 1 Available 50000006753
Books GSU Library Epoch General Stacks General Collection QA76.76.D47 WLA (Browse shelf(Opens below)) 2 Available 50000006754
Books GSU Library Epoch General Stacks General Collection QA76.76.D47 WLA (Browse shelf(Opens below)) 3 Available 50000006948

Includes bibliographical references and index.

Content notes
Part 1. Understanding the domain. Introducing domain-driven design -- Understanding the domain -- A functional architecture -- Part 2.
Modeling the domain. Understanding types -- Domain modeling with types -- Integrity and consistency in the domain -- Modeling workflows as
pipelines -- Part 3. Implementing the model. Understanding functions -- Implementation : composing a pipeline -- Implementation : working
with errors -- Serialization -- Persistence -- Evolving a design and keeping it clean

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.

There are no comments on this title.

to post a comment.
Share