~/talk

Components Just Enough Structure

Talkat Clojure/West 2014 · 2014-03-24..03-26· [software-architecture]
slides:none on file

Describes a tiny Clojure library that models stateful pieces as immutable records/maps and wires them into a system map that does a dependency graph and topological sort to call a start/stop lifecycle on each component, returning updated components. Uses associative injection so tests swap DB/email stubs by assoc before start, supports protocol-based stubs and per-test fresh databases, is implemented with a few helpers (update-system, reverse), works in practice and helps split monoliths, but cannot start/stop partial systems at runtime.

AI-written summary · about

  1. 0:00Intro
  2. 2:31Structure Built-In
  3. 3:13Not a Lot of Structure
  4. 4:47One Big Map
  5. 8:24State Wrapper
  6. 9:33Public API
  7. 10:24Lifecycle: Constructor
  8. 11:03Lifecycle: Transitions
  9. 12:45Service Provider
  10. 13:56Domain Model
  11. 16:37Constructor with Dependencies
  12. 17:49System Map
  13. 19:13Starting a System
  14. 22:16Associative Injection
  15. 23:19Stub Service for Testing
  16. 24:30DB for Testing
  17. 25:37Testing Business Logic
  18. 27:07Var Substitution & Asynchrony
  19. 29:54Entry Point: main
  20. 30:16Entry Point: JSVC
  21. 30:50Entry Point: Web Request
  22. 31:40Inject Components Into Routes
  23. 32:28Web Server Component
  24. 33:23Tricks & Extensions
  25. 34:58System Lifecycle
  26. 36:07Merging Systems
  27. 38:47Disadvantages
~/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.