Goodreads helps you keep track of books you want to read.
Start by marking “Clean Architecture: A Craftsman's Guide to Software Structure and Design” as Want to Read:
Clean Architecture: A Craftsman's Guide to Software Structure and Design
Enlarge cover
Rate this book
Clear rating
Open Preview

Clean Architecture: A Craftsman's Guide to Software Structure and Design

(Robert C. Martin Series)

4.23  ·  Rating details ·  3,653 ratings  ·  297 reviews
Practical Software Architecture Solutions from the Legendary Robert C. Martin (“Uncle Bob”) 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. Marti ...more
Paperback, 400 pages
Published by Pearson Education Asia (first published September 2017)
More Details... Edit Details

Friend Reviews

To see what your friends thought of this book, please sign up.

Reader Q&A

To ask other readers questions about Clean Architecture, please sign up.
Popular Answered Questions
Steve Fenton The book is available now - both in paperback and digital editions.
…more
The book is available now - both in paperback and digital editions.
(less)
This book is not yet featured on Listopia. Add this book to your favorite list »

Community Reviews

Showing 1-30
Average rating 4.23  · 
Rating details
 ·  3,653 ratings  ·  297 reviews


More filters
 | 
Sort order
Start your review of Clean Architecture: A Craftsman's Guide to Software Structure and Design
Rod Hilton
Oct 25, 2017 rated it really liked it  ·  review of another edition
Shelves: programming
I really liked this book but also was a bit disappointed by it. I'm a huge fan of Robert Martin's work, I've read his previous books and I love Clean Code and The Clean Coder. Based on the title and artwork I had kind of assumed that this was just the next step of the Clean Trilogy, this time focusing on architectural concerns.

It is kind of that, but it's mostly not quite that. Really, this book is a lot of background information to understand the "meat" of the book, and the meat of the book is
...more
Carlos Buenosvinos
First of all, I’m a big fan of Robert C. Martin’s work. I think cleancoders.com (I have purchased all videos from Clean Code, Clean Coders and Clean Coders Applied series) is a great learning resource and I have read all others books (Clean Code, Clean Coders and Agile Software Development Principles, Patterns and Practices).

About this book, I may had too high expectations about this book. I’m disappointed. 85% of the book is reviewing the SOLID principles and how to apply them to components (it
...more
Eduards Sizovs
This is the first book of Uncle Bob that I didn't like – it's shallow, impractical, and full of stories from forgotten 90's. A significant part of the book (explanation of SOLID principles) has been copied (with few alternations) from "Agile PPP" book, which is, in my opinion, a much more thorough book.

To understand modularity patterns mentioned in this book, I suggest taking alternative path – reading "Java Application Architecture" by Kirk Knoernschild.

In addition to modularity and SOLID, the
...more
Dima
Nov 25, 2018 rated it did not like it  ·  review of another edition
Shelves: cs
Such a sad and useless book. Let me save you time and money by summarizing the entire book in one deceitful sentence: "Use interfaces to hide implementation details." Done. Now you can go spend your $30 on something better. Like beer.

Of course the best part of it all is that now there is an army of bro-coders out there thinking that they know what's up, so every single code package they check in has a useless interface per every "implementation" class.

Here is a life pro-tip: if you ever stumble
...more
Sina Sadrzadeh
Jul 02, 2019 rated it really liked it  ·  review of another edition
As a frontend developer it is my first book about design principles and architecture. It gave me a good understanding of what are union architecture, hexagonal, port and adapters, layered, and of course clean architecture. However in the Javascript world things are different. Mapping these concepts in FrontEnd needs a lot of effort. But about the book, it is Comprehensive, easy reading and easy following.
Paul Newman
This book was exactly what I expected it to be.
Mohamed Elsherif
Sep 26, 2018 rated it really liked it  ·  review of another edition
Overall a good book, you will learn few things from it, or at least it will be a good refresher, although it is not bringing any new ideas, worth reading if you like uncle Bob.
Sebastian Gebski
Sep 30, 2017 rated it really liked it  ·  review of another edition
Some key remarks I have:
1. Even if it may look (at some point) deceptively simple, ... it isn't. In fact, the most valuable lessons will be truly comprehensible (& clear) only for people with certain level of experience.
2. This book doesn't try to cover anything in particular in the end-to-end way, it's more about certain aspects of software architecture Uncle Bob finds most important (e.g. SOLID principles, boundaries, proper approach to composition, etc.). Needless to say - these are universal
...more
Thiago Ramos
Oct 15, 2018 rated it it was amazing  ·  review of another edition
this is really an excelent book about creating good, reusable and disconnected from infrastructure details code.

If clean code was all about the code, this is about how you structure the code to make it more reusable, framewoderk independent and solid.

If you think MVC and Rails or Django or Phoenix is the way to go for a web project, think again with this book.

Great software does not rely on any framework. It just uses the framework when it needs.
Unpollito
I'm very disappointed with this book. I had very high expectations of it after having read Uncle Bob's excellent "Clean Code" and "The Clean Coder", but after reading this, I can only feel that my money's only purpose was to help the author set up a second gold-coated swimming pool at their mansion - there was little to learn here.

I would divide the book in two halves. The first of these hardly bears any relevance at all - it's mostly anecdotes and stuff that (in my opinion) doesn't really need
...more
Pavel Gatilov
Jan 28, 2018 rated it it was amazing  ·  review of another edition
Clean Guide for an Architect

The book covers different sides of the Software Architect role. The conflicting collaboration of business and technology. The crucial architect's focus topics. The architecture principles derived from the famous SOLID principles and proven by decades. Some of the common architecture mistakes.

All topics of the book have bright and laconic descriptions. The are also many colorful and didactic examples to the ideas, often taken from the author's experience. And besides,
...more
Petar Ivanov
First of all, I am a huge fan of Uncle Bob. I have red "The Clean Coder" and "Clean Code" which I really found very helpful.
Regarding this book, I felt like I was reading the same thing again and again. It was all about using interfaces and hiding your business logic and implementation details. It's about using the SOLID principles into the design of your architecture. It's about using components. Also, the Microservices and SOA architectures were mentioned but I didn't liked the explanations. T
...more
Maris Krivtezs
Dec 02, 2017 rated it it was amazing  ·  review of another edition
Many of the reviewers who rated it low misunderstood the book. I see in the reviews that they expected microservice, CQRS and other "architecture" descriptions. But this book is about something different. This is about the "clean" architecture. Yes he uses SOLID to describe architecture components, but from the different angle than talking about the code.
The book also is a good read just because of the style and story. Uncle Bob always is a good storyteller.
Just read and enjoy the book. Do not e
...more
Nikolay
With one word – reasonable.

There wouldn't be many people who would benefit much from it. Beginners would need a lot more context and examples, while more experienced developers wouldn't learn much new. Mixing principles with a more specific suggested architecture doesn't help either.

Clean Architecture is useful to start a conversation, provoke questions, or give ideas how to explain patterns one understands on a subconscious level.
...more
Tomasz
Apr 19, 2018 rated it liked it  ·  review of another edition
Shelves: technical, owned, 2018
Interesting, but too long with too many not needed and off-topic anecdotes. Still worth your time, but not as insightful as previous titles from "Clean X" series. ...more
Mengyi
Feb 03, 2020 rated it it was amazing  ·  review of another edition
A very useful reference book that I will definitely come back to often. It makes me understand a lot more about why some architecture is good or bad.
Sergey Teplyakov
The book isn't bad, but not very practical.

All the principles described in the book make sense once you understand them and saw issues in practice. But what if you unfamiliar with them? What if you want to understand them? In this case, the book wouldn't help: the chapter dedicated to design/architecture principles are very short without any practical examples.

Lack of examples is the main problem though. It is hard to provide good samples for a design/architecture book but without them, it is ha
...more
Rodrigo Burgos
Jan 21, 2019 rated it it was amazing  ·  review of another edition
Is a great book, I demystified some thoughts I had about software architecture
- Be aware of how to architect your unit test.
- How to apply SOLID principles in a web service architecture
- A monolithic architect is not bad if you know the advantage and disadvantage
- Use framework but not married your business logic to them
Toni Tassani
Nov 13, 2017 rated it it was ok  ·  review of another edition
Shelves: safari
A review of programming paradigms and SOLID, adding very little more and simplifying the concept of architecture to only software architecture/design.
Chapter 34, authored by Simon Brown, is very good.
Felipe
Jan 24, 2018 rated it liked it  ·  review of another edition
It's an OK book. Not a total waste of your time but it's just Uncle Bob trying to milk the SOLID cow a bit more. ...more
Nick Jamil
Jun 02, 2018 rated it it was amazing  ·  review of another edition
I think if a software engineer reads only two books in their career... first of all, shame on them :)... but second of all, those books should be 1) Clean Code, and 2) Clean Architecture.
Meysam Azad
Apr 02, 2020 rated it it was amazing  ·  review of another edition
What an incredible book. I felt like my spirit was rising.

I certainly learnt a lot in this book, than I could have by redoing the same mistakes over the years.

It's definitely a must-read book.

Some of my favorite quotes:


If you think good architecture is expensive, try bad architecture.


The only way to go fast, is to go well.


Software was invented to be “soft.” It was intended to be a way to easily change the behavior of machines. If we’d wanted the behavior of machines to be hard to change, we woul
...more
Hildeberto
Jan 30, 2020 rated it it was amazing  ·  review of another edition
Shelves: technology
I believe my rating is strongly influenced by the fact that I read the book Evolutionary Architecture before this one. That book was pointless while this one is very practical, solid, useful, well grounded on real world problems. This one really shows how to deal with constant changes, not that one.

The book seems to be an introduction to software architecture. Further reading is required to master this art, but no other reading can be effective without going through this one first. Therefore, th
...more
Tam Doan
Jul 15, 2020 rated it it was amazing  ·  review of another edition
Shelves: favorites, tech
This book overview about OOP, SOLID, Stable Dependency Principle,..

The ultimate goal of an architecture is to minimize the lifetime cost of the system and to maximize programmer productivity.
A good architecture is to leave as many options open as possible. These options are the details that don't matter.

We must decoupling layers, we are also dividing the system into thin vertical use cases that cut thru those layers.
All software systems have 2 major elements: policy and details: The policy elem
...more
Michał Kostrzewa
Really enjoyed it, it was surprisingly easy to read. Explained all the rules and principles well. I was thinking about our production code all the time while reading it.

Chapter about decoupling tests via a Test API really needs some examples. Especially because of already existing controversy about fragility of TDD etc.
Patkós Csaba
Mar 29, 2018 rated it really liked it  ·  review of another edition
Shelves: programming
Interesting and very well written. If you are familiar with the SOLID principles, this book will be an easy read.
Not 5 stars because it contains too little information in my opinion. I don't mean that it is a short book, not at all. However it doesn't really revolutionize your perspective on design and architecture if you are already applying SOLID in you application.
In many places I had the distinct feeling that the author was talking in generic terms and just filling in the pages with non-esse
...more
Osvaldo Santana Neto
Amazing Book. The preface/first chapters worth the reading of this book. But I believe it could be a little bit repetitive for the readers of Uncle Bob’s previous books because he uses the SOLID principles as a tool for architecting the software the same way he proposes that principles to model software components.
Daniel Assis Alfenas
A very good book, even if it is a little slow and go very little into practice of how an architecture evolves through a real project. The perspective of knowing what the use cases are before designing your system is unrealistic; most of use cases users will use for real are not mapped from beginning (that is one reason why use case analysis is unpractical). Instead, the book could show how use cases come and go discarded and how you can handle this considering trade-offs to encapsulate stuff in ...more
Elena
Sep 28, 2018 rated it really liked it  ·  review of another edition
Shelves: computer-science
i quit my job because of this book, 4 stars
Adelina Simion
Feb 18, 2020 rated it really liked it  ·  review of another edition
Shelves: dev-books
This book was full of good advice and thorough examples. While it is focused on Java, it is a good read for all software engineers.
« previous 1 3 4 5 6 7 8 9 next »
There are no discussion topics on this book yet. Be the first to start one »

Readers also enjoyed

  • Domain-Driven Design: Tackling Complexity in the Heart of Software
  • Refactoring: Improving the Design of Existing Code
  • Building Microservices: Designing Fine-Grained Systems
  • Design Patterns: Elements of Reusable Object-Oriented Software
  • The Pragmatic Programmer: From Journeyman to Master
  • Test-Driven Development: By Example
  • Patterns of Enterprise Application Architecture
  • Designing Data-Intensive Applications
  • The Software Craftsman: Professionalism, Pragmatism, Pride
  • Fundamentals of Software Architecture: An Engineering Approach
  • Implementing Domain-Driven Design
  • Working Effectively with Legacy Code
  • Head First Design Patterns
  • Building Evolutionary Architectures: Support Constant Change
  • Effective Java
  • The Mythical Man-Month: Essays on Software Engineering
  • Code Complete
  • Java Concurrency in Practice
See similar books…

Goodreads is hiring!

If you like books and love to build cool products, we may be looking for you.
Learn more »
1,252 followers
Robert Cecil Martin, commonly called Uncle Bob, is a software engineer, advocate of Agile development methods, and President of Object Mentor Inc. Martin and his team of software consultants use Object-Oriented Design, Patterns, UML, Agile Methodologies, and eXtreme Programming with worldwide clients.

He was Editor in Chief of the C++ Report from 1996 to 1999. He is a featured speaker at internatio
...more

Other books in the series

Robert C. Martin Series (1 - 10 of 15 books)
  • Fit for Developing Software: Framework for Integrated Tests
  • Working Effectively with Legacy Code
  • Agile Java: Crafting Code with Test-Driven Development
  • Managing Agile Projects
  • Agile Estimating and Planning
  • UML for Java Programmers
  • Agile Principles, Patterns, and Practices in C#
  • Clean Code: A Handbook of Agile Software Craftsmanship
  • The Clean Coder: A Code of Conduct for Professional Programmers
  • Java Application Architecture: Modularity Patterns with Examples Using OSGi (Software Patterns Series)

News & Interviews

Believe it or not, we're halfway through 2021! As is our tradition, this is the time when the Goodreads editorial team burrows into our data to...
113 likes · 81 comments
“The only way to go fast, is to go well.” 15 likes
“I'm a programmer. I like programming. And the best way I've found to have a positive impact on code is to write it.” 8 likes
More quotes…