~/talk

Domain Modeling Made Functional

Talkat DevTernity 2022 · 2022-12-08..12-09· [functional-programming, typescript]
slides:none on file

Shows concrete F# code that models domains as types: F# discriminated unions for choices, option types instead of null, and wrapper types that enforce constraints at construction time (constructors return option). Demonstrates a card game and an email verification flow where business rules become compile‑time guarantees so you cannot set a verified flag without a verified email. Explains how this reduces tests and defensive checks and how to evolve designs while keeping implementation safe.

AI-written summary · about

  1. 0:00Introduction to design
  2. 1:33Importance of shared models
  3. 4:31Modeling domains in code
  4. 7:25Interactive design process
  5. 11:35Code as the design
  6. 15:34Functional type systems
  7. 18:46Practical type composition
  8. 23:55Handling optional values
  9. 28:18Constrained domain types
  10. 34:48Replacing flags with choices
  11. 39:08Refactoring for insight
  12. 42:05Making illegal states impossible
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.