Exercises
# Practice material for the theme's concepts — katas, challenges, and multi-milestone build projects.
❯ cat documents/
-
Variance workout — subject
Subject
2026-08-08
The self-contained variance work statement — the six drills' rules, code seeds, compile-vs-runtime constraints, and the acceptance checks for each part.
-
Variance workout — LSP & ISP through the type checker
Exercise
2026-08-08
A six-part polyglot workout making variance tangible — break array covariance, expose Rectangle/Square, drill PECS, earn Kotlin's in/out by segregating a fat interface, tighten strictFunctionTypes, finish with LSP as contract tests.
-
Gilded Rose — legacy rescue — subject
Subject
2026-08-08
The self-contained Gilded Rose work statement — the shop's full item-update rules, the conjured-items feature request, and the acceptance checks for the rescue.
-
Birthday Greetings — hexagonal extraction — subject
Subject
2026-08-08
The self-contained Birthday Greetings work statement — the greeting behavior, the flat starting design, the extraction assignment, and the checks that prove the boundary holds.
-
Event-sourced bank account — subject
Subject
2026-08-08
The self-contained bank-account work statement — commands, invariants, events, projections, and the consistency requirements the event-sourced build must satisfy.
-
Gilded Rose — legacy rescue
Exercise
2026-08-08
The Gilded Rose kata run as a full legacy-rescue project — pin behavior with characterization tests, refactor in small steps, then ship a new feature on the clean design.
-
Birthday Greetings — hexagonal extraction
Exercise
2026-08-08
Matteo Vaccari's Birthday Greetings kata as a hexagonal-architecture project — extract a pure domain core from a coupled script, put ports at the edges, then swap adapters to prove the boundary.
-
Event-sourced bank account
Exercise
2026-08-08
A bank account built event-sourced from scratch — aggregate, append-only event store, projections — to feel where CQRS and event sourcing pay off and where they cost.