# FOCUS: Architecture for People Who Ship Software — Structure - **Author**: J.C. Ködel - **Source**: `source-file.pdf` (737 PDF pages) - **Chapter count**: 24 numbered chapters, plus an interlude after Chapter 1. - **Page numbers**: PDF pages, starting at 1. The source has bookmarks for the sections listed below. | Reading order | Section | Starts on PDF page | | --- | --- | ---: | | Chapter 1 | About the Author | 13 | | Interlude-Map-of-the-trilogy | Map of the trilogy | 21 | | Chapter 2 | The Day One Line Change Broke Three Screens | 24 | | Chapter 3 | AI Writes Fast. So What? | 42 | | Chapter 4 | Simplicity Is a Decision: KISS and YAGNI | 57 | | Chapter 5 | DRY Isn’t About Code | 81 | | Chapter 6 | SOLID Without Dogma | 99 | | Chapter 7 | Pure Functions and Immutability | 127 | | Chapter 8 | Errors Are Values | 158 | | Chapter 9 | Explicit Dependencies: DI and the Composition Root | 188 | | Chapter 10 | FOCUS in One Page | 212 | | Chapter 11 | Features, Not Layers | 256 | | Chapter 12 | The View: Dumb by Design | 290 | | Chapter 13 | The Orchestrator: Event In, State Out | 331 | | Chapter 14 | Use Cases: Where the Rules Live | 386 | | Chapter 15 | Repositories: The Exception Boundary | 421 | | Chapter 16 | Commands and Queries: CQS Without Ceremony | 472 | | Chapter 17 | Test Each Piece the Way It Asks to Be Tested | 498 | | Chapter 18 | What to Do When the Language Doesn’t Help | 540 | | Chapter 19 | Anti-Patterns: How to Wreck FOCUS | 583 | | Chapter 20 | Migrate Legacy Code Without Stopping the Factory | 616 | | Chapter 21 | FOCUS + AI: The Duo That Scales | 640 | | Chapter 22 | Architecture for humans and for models | 677 | | Chapter 23 | Build Rosie’s App | 680 | | Chapter 24 | Ship Increments Without Chaos | 730 | Chapter 1 occupies PDF pages 13–20. The interlude occupies pages 21–23; Chapter 2 begins on page 24. The PDF's generated contents display some chapter numbers incorrectly, so this index uses the sequence confirmed by the chapter text and bookmarks. ## Source Text Index Extracted from `source-file.pdf` by `tools/split_book.py`. Read these instead of the PDF. | Folder | Section | PDF pages | Pages without extractable text | | --- | --- | --- | --- | | Front-Matter | Front matter | 1–12 | 1 | | Chapter-01-About-the-Author | About the Author | 13–20 | none | | Interlude-Map-of-the-trilogy | Map of the trilogy | 21–23 | none | | Chapter-02-The-Day-One-Line-Change-Broke-Three-Screens | The Day One Line Change Broke Three Screens | 24–41 | none | | Chapter-03-AI-Writes-Fast-So-What | AI Writes Fast. So What? | 42–56 | none | | Chapter-04-Simplicity-Is-a-Decision-KISS-and-YAGNI | Simplicity Is a Decision: KISS and YAGNI | 57–80 | none | | Chapter-05-DRY-Isnt-About-Code | DRY Isn’t About Code | 81–98 | none | | Chapter-06-SOLID-Without-Dogma | SOLID Without Dogma | 99–126 | none | | Chapter-07-Pure-Functions-and-Immutability | Pure Functions and Immutability | 127–157 | none | | Chapter-08-Errors-Are-Values | Errors Are Values | 158–187 | none | | Chapter-09-Explicit-Dependencies-DI-and-the-Composition-Root | Explicit Dependencies: DI and the Composition Root | 188–211 | none | | Chapter-10-FOCUS-in-One-Page | FOCUS in One Page | 212–255 | none | | Chapter-11-Features-Not-Layers | Features, Not Layers | 256–289 | none | | Chapter-12-The-View-Dumb-by-Design | The View: Dumb by Design | 290–330 | none | | Chapter-13-The-Orchestrator-Event-In-State-Out | The Orchestrator: Event In, State Out | 331–385 | none | | Chapter-14-Use-Cases-Where-the-Rules-Live | Use Cases: Where the Rules Live | 386–420 | none | | Chapter-15-Repositories-The-Exception-Boundary | Repositories: The Exception Boundary | 421–471 | none | | Chapter-16-Commands-and-Queries-CQS-Without-Ceremony | Commands and Queries: CQS Without Ceremony | 472–497 | none | | Chapter-17-Test-Each-Piece-the-Way-It-Asks-to-Be-Tested | Test Each Piece the Way It Asks to Be Tested | 498–539 | none | | Chapter-18-What-to-Do-When-the-Language-Doesnt-Help | What to Do When the Language Doesn’t Help | 540–582 | none | | Chapter-19-Anti-Patterns-How-to-Wreck-FOCUS | Anti-Patterns: How to Wreck FOCUS | 583–615 | none | | Chapter-20-Migrate-Legacy-Code-Without-Stopping-the-Factory | Migrate Legacy Code Without Stopping the Factory | 616–639 | none | | Chapter-21-FOCUS-AI-The-Duo-That-Scales | FOCUS + AI: The Duo That Scales | 640–676 | none | | Chapter-22-Architecture-for-humans-and-for-models | Architecture for humans and for models | 677–679 | none | | Chapter-23-Build-Rosies-App | Build Rosie’s App | 680–729 | none | | Chapter-24-Ship-Increments-Without-Chaos | Ship Increments Without Chaos | 730–737 | none |