~/talk

Moving IO to the edges of your app: Functional Core, Imperative Shell

Talkat NDC London 2024 · 2024-01-29..02-02· [frontend-architecture]
slides:none on file

Argues to keep all non-deterministic I/O at the perimeter and make business logic a pure, testable core that returns explicit decision types; demonstrates C# and F# examples, uses enums/discriminated unions to represent outcomes, and shows refactors that turn void/IO-heavy methods into pure functions plus an imperative shell. Recommends functional core, imperative shell, prefers lightweight DB access (Dapper) over ORMs like Entity Framework, and outlines five dependency strategies including dependency rejection and discriminated unions as a modeling tool.

AI-written summary · about

  1. 0:00Introduction
  2. 1:11IO out of domain logic
  3. 5:28IO at workflow edges
  4. 12:28Refactor IO from business logic
  5. 23:20Customer profile updates example
  6. 30:52Pure code benefits
  7. 36:31Validation architecture
  8. 41:50Domain design checklist
  9. 43:34Dependency management approaches
  10. 59:40Key takeaways
~/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.