Domain Modeling Made Functional
summary
Shows how using F# and composable types (options, wrapper types, discriminated unions) turns vague fields into enforced invariants: email becomes EmailAddress or VerifiedEmail created only by a verification service, quantity becomes a constrained type, contact method becomes an EmailOnly|AddressOnly|Both union so “no-contact” is impossible. Demonstrates rapid domain discovery with experts in minutes, treats the compiler as a compile‑time unit test, and applies these techniques to LOB examples like payments, carts, and card decks.
AI-written summary · about
chapters (21)
- 0:00Introduction
- 0:30Challenge
- 1:40Domain Modeling Made Functional
- 2:20Functional Programming
- 3:15Design
- 4:30Agile Contribution
- 5:00Shared Model
- 6:00Code
- 7:30Function
- 8:50Coding
- 10:20Agile
- 14:10Domain vs Code
- 16:50Problems
- 21:35Data Behavior
- 22:13Choice Types
- 27:25Optional Values
- 31:18Constraints
- 31:50Rapper Types
- 36:15Wrapper Types
- 42:41Challenge Recap
- 48:20Communication is twoway
related talks
49mDomain Modeling Made Functional
52mDomain Modeling Made Functional
46mDomain modelling made simple: Functions and Values
43mWrite your own domain specific language with F#
46mDesign for errors - An introduction to Domain Modeling with a bit of Arrow
25mArt of Domain Modeling
46mAlgebraic Thinking for evolution of pure functional domain models
58mDomain Driven Design (DDD) with Algebraic Data Types (ADT)
