Expressing Design in Code: Architecturally-Evident Coding Patterns
summary
Argues for an architecturally-evident coding style that encodes architecture intent in source so readers infer module↔runtime mapping. Demonstrates a working email‑answering system (pipes‑and‑filters, multiplexor, parallel feature extractors, classifier) and gives concrete patterns: centralize instantiation and align modules to runtime components, make ports explicit and promote connector classes, and use annotations as hard checks (or OSGi/assembly tools, static analyzers) to catch violations and speed developer onboarding and evolution.
AI-written summary · about
chapters (32)
- 0:00Intro
- 2:32A question
- 3:50Source of design knowledge
- 4:36Architects, architecting, architectures
- 5:49Agilists, agiling, architectures
- 6:11An answer
- 6:28Talk outline
- 6:55Programming languages express solutions
- 9:01What is design intent?
- 12:23Intensional and extensional
- 14:37How can we express design intent?
- 16:23Expressing design intent old school
- 17:54Model-in-code principle
- 19:48What is architecture?
- 22:41Views and styles
- 24:55What architecture intent to encode?
- 26:04Motivation
- 26:51Architecturally evident coding style
- 28:21Hard & soft mechanisms to convey intent
- 29:27Emal processing example
- 31:22Pattern: Module dependencies
- 32:50Package structure
- 34:19Pattern: Module-component alignment
- 37:37Easy mapping to runtime vientype
- 38:16Pattern: Component types
- 39:05Visible component types
- 39:40Pattern: Connector types
- 40:39Visible connector types
- 41:41Pattern: Port types & protocols
- 43:57Pattern: Invariants and constraints
- 45:03Anti-pattern: Buried treasure
- 45:26Component frameworks
related talks
07msoftware architecture vs code
57mCore Software Design Principles for Programmers
49mBottom-up Architecture: Bridging the Architecture-Code Gap
45mBeyond design patterns and principles - writing good OO code
01h 00mEngineering Software
01h 27mPlato, Magritte, Sartre & Carroll - Learning Software Design from the Masters
46mSoftware Architecture vs Code
49mGetting a handle on software architecture
