Share E-Book
Scan to open this page

Scan with your phone to open this page

Author: Robert C. Martin

Rating No ratings yet

By applying universal rules of software architecture, you can dramatically improve developer productivity throughout the life of any software system. Now, building upon the success of his best-selling books Clean Code and The Clean Coder, legendary software craftsman Robert C. Martin (“Uncle Bob”) reveals those rules and helps you apply them. Martin’s Clean Architecture doesn’t merely present options. Drawing on over a half-century of experience in software environments of every imaginable type, Martin tells you what choices to make and why they are critical to your success. As you’ve come to expect from Uncle Bob, this book is packed with direct, no-nonsense solutions for the real challenges you’ll face–the ones that will make or break your projects. - Learn what software architects need to achieve–and core disciplines and practices for achieving it - Master essential software design principles for addressing function, component separation, and data management - See how programming paradigms impose discipline by restricting what developers can do - Understand what’s critically important and what’s merely a “detail” - Implement optimal, high-level structures for web, database, thick-client, console, and embedded applications - Define appropriate boundaries and layers, and organize components and services - See why designs and architectures go wrong, and how to prevent (or fix) these failures Clean Architecture is essential reading for every current or aspiring software architect, systems analyst, system designer, and software manager–and for every programmer who must execute someone else’s designs.

AI Reading Assistant

Whole-book reading guide from stratified index samples; jump to passages in the text

AI guide
【One-Line Pitch】 A veteran architect's argument that software structure is governed by a small set of timeless rules, and that following them is the only way to stay productive as systems age. Best for working programmers, tech leads, and anyone who inherits or designs systems they'll have to live with for years. 【Book Arc】 - **Opening (~0%–10%)**: Frames design and architecture as the same discipline and attacks the "we'll clean it up later" mindset, arguing that mess-making is slower on every timescale, not just the long one. - **Early (~10%–25%)**: Surveys the three programming paradigms—structured, object-oriented, and functional—as disciplines that restrict what programmers may do, with OO recast as a tool for controlling source-code dependencies. - **Early–Middle (~25%–40%)**: Moves from code-level principles (SRP, OCP, LSP, ISP, DIP) to component principles (REP, CCP, CRP, ADP, SDP, SAP), explaining how classes cohere into releasable, acyclic, stable-yet-abstract units. - **Middle (~40%–55%)**: Turns to architecture proper: keeping options open, decoupling layers and use cases, and the warning that apparent duplication is often accidental and should not be merged. - **Late (~55%–80%)**: Presents the book's central prescription—boundaries, the Dependency Rule, and the layered shape that keeps high-level policy independent of databases, web servers, and frameworks. - **Ending (~80%–100%)**: Case studies of architectural failure and success (including FitNesse), plus guidance on embedded, service-oriented, and detail-heavy systems, closing on what is essential versus merely a "detail." 【Key Takeaways】 - **Architecture and design are the same thing** (Opening): The book refuses to separate high-level structure from low-level code decisions, so "architecture" is not a phase but a continuous activity. - **Mess slows you down immediately, not eventually** (Opening): Martin rejects the common belief that dirty code buys short-term speed, arguing the cost is paid right away and compounds. - **Paradigms are restrictions, not features** (Early): Structured programming removes goto, OO removes unrestricted function pointers, functional removes assignment—each discipline narrows what you can do to make reasoning possible. - **OO's real value is dependency control** (Early): Polymorphism lets architects invert source-code dependencies so high-level policy never depends on low-level detail, enabling independently deployable and developable modules. - **Components should be cohesive, acyclic, and stable-where-abstract** (Early–Middle): The component principles (REP, CCP, CRP, ADP, SDP, SAP) give concrete criteria for what belongs together and which direction dependencies should point. - **Delay decisions you don't need to make yet** (Middle): Databases, web servers, frameworks, and DI containers are details; keeping high-level policy ignorant of them preserves options and reduces rework. - **Not all duplication is real** (Middle): Similar screens, schemas, or algorithms often diverge later; merging them prematurely couples layers and use cases that should stay separate. - **The Dependency Rule is the spine of the book** (Late): Source-code dependencies must point inward, toward higher-level policy, with boundaries drawn so details plug into—not into—the core. 【Reading Tips】 - Read Part I and the paradigm chapters quickly for framing, then slow down for the SOLID and component-principle chapters—those are the load-bearing arguments. - Treat the case studies as calibration, not recipes: they show how premature framework adoption and SoA enthusiasm went wrong, which is more instructive than the success story. - Keep a mental (or literal) diagram of the Dependency Rule as you read; almost every later chapter is an application of it. - Skim the embedded and service-oriented material if it isn't your domain, but read the "what is a detail" discussion carefully—it reframes everyday technology choices. 【Coverage Limits】 The excerpts cover the book's framing, paradigm survey, SOLID and component principles, boundary/dependency discussion, and case-study material, but do not include the full text of every chapter or the detailed code examples. Specific chapter-level content beyond what is quoted here is not represented.
Page 8
ase Study 5 Conclusion 12 Chapter 2 A Tale of Two Values 13 Behavior 14 Architecture 14 The Greater Value 15 Eisenhower’s Matrix 16 Fight for the Architectur...
View in text
Excerpt 2
urned by inc is stored in counter and the lock is released. Otherwise, the lock is released, and the strategy is retried from the beginning. The atom facilit...
View in text
Excerpt 3
ers to live in an isolated world for four days out of five. The disadvantage, of course, is the large integration penalty that is paid on Friday. Unfortunate...
View in text
Excerpt 4
properly decoupled. Decoupling Modes (Again) Back to modes. There are many ways to decouple layers and use cases. They can be decoupled at the source code le...
View in text
Excerpt 5
and the processing steps involved in producing that output. A use case describes application-specific business rules as opposed to the Critical Business Rule...
View in text
Excerpt 6
w, or JBehave tests, they are architecturally equivalent. Tests, by their very nature, follow the Dependency Rule; they are very detailed and concrete; and t...
View in text
Excerpt 7
les, 3 inches in diameter, that weigh just a few grams and hold a terabyte or more. It’s been a wild ride. And throughout that ride programmers have been pla...
View in text
Excerpt 8
ide world (e.g., UIs, databases, third-party integrations). The major rule here is that the “outside” depends on the “inside”—never the other way around. Fig...
View in text
Tags
AI categories
SoftwareProgrammingBackend
ISBN: 0134494164
Publish Year: 2018
Language: English
Pages: 429
File Format: PDF
File Size: 6.3 MB
Text Preview (First 20 pages)
Registered users can read the full content for free

Register as a Gaohf Library member to read the complete e-book online for free and enjoy a better reading experience.

Generating text preview…