~/talk

TDD & DDD from the Ground Up Live Coding

slides:none on file

Live coding builds a tiny university API with live coding tests that start as API-level TDD and evolve into focused unit tests, using Spring Boot controllers, repositories and CompletableFuture to reproduce a concurrency race; each commit is a single, small step you can replay from the GitHub history so you see the refactor path. The demo adds a scheduler that replaces the enrollment capacity check, shows a reproducible concurrency failure, and ends with a working scheduling algorithm and clearer domain model.

AI-written summary · about

  1. 0:00TDD and DDD intro
  2. 2:48Understanding TDD and behavior
  3. 3:51Spring Boot setup
  4. 4:55First test: student registration
  5. 6:18ID allocation and DDD refactor
  6. 7:01Ubiquitous language in code
  7. 8:47Location header and API response
  8. 10:11Tests with implementation benefits
  9. 11:55API vs domain models
  10. 13:01Domain terms with ContexDiv
  11. 14:25Testing student persistence
  12. 17:35Code by domain concepts
  13. 19:44Rooms with capacity
  14. 20:26Courses in catalog
  15. 21:09Linking courses to rooms
  16. 22:12Room ID validation
  17. 23:51Balancing tests and steps
  18. 26:39Domain services for logic
  19. 27:43Course enrollment checks
  20. 30:10Refactoring to avoid debt
  21. 34:17Testing and deploying enrollment
  22. 35:05Race conditions in production
  23. 38:15Concurrency testing
  24. 40:45Event storming revisit
  25. 43:51Redesigning scheduling
  26. 45:17Removing unnecessary features
  27. 46:41Scheduling algorithm
  28. 48:28Testing business logic
  29. 51:15Finalizing scheduling service
  30. 51:58Resources and closing
~/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.