roam/20210929114718-scott_wlasch...

1.1 KiB

Scott Wlaschin - Talk Session: Domain Modeling Made Functional

  • Ubiquitous Language
  • Persistence Ignorance (no foreign keys or other database-specific details)
  • Communicating design decisions in code

    • Constraints, optionality, etc.
  • Algebraic Data Types are composable
  • Avoid primitives, declaring domain types instead
  • Types can be used as a domain modeling tool
  • "Null is the Sauron of Static Typing"
  • Constraints can be enforced when constructing distinct (wrapped) types.
  • The Ubiquitous Language evolves with the domain because it lives in the evolving code.
  • "Make illegal states unrepresentable!" - Yaron Minsky
  • Static Typing gives you confidence to make changes