Boundaries
summary
Argues that converting boundaries to functional core (pure functions returning values) plus an imperative shell (IO, DB, networks) removes fragile mocks, makes unit tests fast, and avoids boundary breaks; demonstrates a ~600-line Twitter client with a 153-line shell and a 35-line actor library but zero shell tests; points out path explosion (2^n, e.g. 500 conditionals → ~150-digit space), shows the value-based design easily parallelizes the sweeper into three cores, and warns about allocation costs on MRI versus actor-friendly VMs.
AI-written summary · about
chapters (14)
- 0:00Intro
- 0:40Test doubles
- 6:34Why integration tests dont work
- 8:00Values
- 10:57Procedural vs Functional
- 14:07Reintroducing State
- 17:15Actor Model
- 18:30Boundary between components
- 21:41Testing
- 22:25Comments Questions
- 30:26Functional Example
- 32:00Cursor
- 33:04Cursor Manipulation
- 39:35Database clearing
related talks
41mUsing Boundary-Driven Development to beat code complexity
01h 01mMoving IO to the edges of your app: Functional Core, Imperative Shell
01h 00mFunctional architecture - The pits of success
25mTestable Architecture: Keep 'em Separated
42mStratified design and functional architecture
21mTestable Architecture: Keep 'em Separated
01h 29mArchitecture Beyond Clean & Hexagonal
41mYesterday's Cargo
