Skip to main content

Reference and Selective Reading

You do not need to read the source books front-to-back for this module. Use the concept pages and practice pages first. Open these local chunks only when you need alternate exposition, worked examples, or depth on a specific judgment call.

Source Roles

SourceRoleWhy it is here
Clean Code (Martin)Primary teaching sourceStrongest for clarity, simple design, review vocabulary, stewardship
Good Code, Bad Code (Hansen)Primary / judgmentStrongest for code-quality rubrics, testability, and dependency injection
Refactoring (Fowler)Primary / tradeoffsStrongest for when-to-refactor, YAGNI, two hats, and reversibility framing
Head First Design PatternsSelective supportPattern combinations and "pattern sense"
Design Patterns (GoF)Reference onlyVocabulary and pattern-selection discussion; do not read cover to cover
OOADSelective supportWhen a diagram is warranted, which UML diagram to pick
Google eng-practices (external)Primary externalCanonical code-review rubric and etiquette
joelparkerhenderson/architecture-decision-record (external)Primary externalADR templates and examples

Read Only If Stuck

Cluster 1: Integrating Patterns in Real Systems

Cluster 2: Code Review as a Design Conversation

Cluster 3: Design Documents and Decision Records

Cluster 4: Pragmatic Tradeoffs

Cluster 5: Review Workflows and Craftsmanship

Optional Deep Dive

Concept-to-Source Map

Primary conceptBest source if stuckWhy this source
01 Choosing patterns as response to pressureHFDP: May the force be with you (part 1)Most explicit treatment of pressure-first thinking
02 Combining patternsHFDP: Compound patternsWalks through a multi-pattern feature with commentary
03 Simple design: the four rulesClean Code: Simple design rulesCanonical, short statement
04 Code review rubricsGood Code Bad Code: Code QualityCleanest short rubric; pairs with Google eng-practices externally
05 Writing review commentsClean Code: Redundant comments to scary noiseSharpens what "useful written English about code" looks like
07 Architecture Decision RecordsClean Code: How would you build a cityMotivates the why an ADR captures
08 Design documentsGood Code Bad Code: How this book is organizedShort example of shaping larger reasoning into a readable document
10 Over- vs under-engineeringRefactoring: YAGNI and the wider processCanonical articulation of the tension
11 Designing for testabilityGood Code Bad Code: Make code testableDirectly motivates seams without damaging the domain
13 Reviewable commits and PR shapeClean Code: Successive refinementShows the value of incremental visible progress
15 Long-term stewardshipClean Code: AttitudeDirectly names the boy-scout-rule posture