Goodreads helps you keep track of books you want to read.
Start by marking “Clean Code” as Want to Read:
Clean Code
Enlarge cover
Rate this book
Clear rating
Open Preview

Clean Code

4.40  ·  Rating details ·  14,539 ratings  ·  859 reviews
Even bad code can function. But if code isn't clean, it can bring a development organization to its knees. Every year, countless hours and significant resources are lost because of poorly written code. But it doesn't have to be that way. Noted software expert Robert C. Martin presents a revolutionary paradigm with Clean Code: A Handbook of Agile Software Craftsmanship . Ma ...more
Paperback, 431 pages
Published by Pearson Education (first published January 1st 2007)
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 Code, please sign up.
Popular Answered Questions
Madison Scott I own it in paperback form but ended up reading most of it from a PDF in the native books app on my iPhone, as it was most convenient for me to read i…moreI own it in paperback form but ended up reading most of it from a PDF in the native books app on my iPhone, as it was most convenient for me to read in an electronic format while commuting via the subway. (Note: it was a PDF and NOT an ebook, so I don't know if an ebook would mess with the formatting.) The paperback version was definitely handy for two or three of the later chapters that are each a study in refactoring some package of code. For these chapters, I had post it notes in up to five different places in the book, flipping back and forth between bits of the original code, bits of the refactored code, and the explanation of why the changes were made. If you have access to a printer, you could just print the relevant items for these chapters when it comes time. The PDF is easily found with a quick Google.(less)
This book is not yet featured on Listopia. Add this book to your favorite list »

Community Reviews

Showing 1-30
Average rating 4.40  · 
Rating details
 ·  14,539 ratings  ·  859 reviews


More filters
 | 
Sort order
Start your review of Clean Code
Oana Sipos
Mar 08, 2015 is currently reading it  ·  review of another edition
These are rather notes than a review while reading:

1. Use very descriptive names. Be consistent with your names.

2. A function should not do more than one thing.

3. SRP (Single Responsibility Principle): a class or module should have one, and only one, reason to change.

4. Stepdown rule: every function should be followed by those at the next level of abstraction (low, intermediate, advanced).

5. A long descriptive name is better than a short enigmatic name. A long descriptive name is better than a
...more
Francis Fish
The first half of this book is well worth a read. Then I was reminded of Martin Fowler's (I think) comment that the original Design Patterns Elements of Reusable Software book was a response to the limitations of C++. It dovetailed so well into Java because Java has a lot of the same annoying limitations, and in some ways is even harder.

The latter section of the book contains some worked examples that I didn't always agree with because they seemed to be totally over done. A lot of the refactorin
...more
Vladimir
Apr 14, 2011 rated it really liked it  ·  review of another edition
Shelves: swe
This book makes some very good points, sometimes taking them to extreme ("Never write functions longer than 15 lines! Never write functions with more than three arguments!"). Some of these points were quite new and useful for me - YMMV. It's too Java-specific in a few places, and reading the last refactoring chapter on a kindle was quite a challenge, but otherwise it was well worth a read. At least I got a clear picture of how I want to refactor a big piece of my current project after reading th ...more
Nariman
If you are a programmer, you must read it! full of good examples of how to write clean and readable code.
Rod Hilton
There is a movement brewing in the world of professional software development. This movement is concerned not merely with writing functional, correct code, but also on writing good code. Taking pride in code. This movement is the Software Craftsmanship movement, and one of the people near the head of this movement is Robert C. Martin, also known as Uncle Bob.

His book "Clean Code" is, in many ways, an introduction to the concept of Software Craftsmanship and a guide for developers interested in b
...more
Jerry
Jan 08, 2009 rated it liked it  ·  review of another edition
Shelves: technical
I had a tough time deciding between 3 or 4 stars.

The book should be called Clean Java Code. Some of the concepts definitely translate to other languages, but it uses Java for all of the examples and some of the chapters are dedicated to Java-specific issues.

I consider many of the the suggestions to simply be common sense, but I've worked with enough of "other people's code" to realize they don't necessarily agree. With all of that said, I'd definitely recommend the book to Java developers at th
...more
Carl-Eric
Oct 03, 2013 rated it liked it  ·  review of another edition
Shelves: computers
Many good points in this book. Unfortunately, almost all of them are overdone. Yes, you should write short functions, if possible. Yes, you should have functions that do one thing.

But no, "one thing" does not mean you should tear an algorithm apart into twenty little funclets that make no sense on their own.

Basically, like another reviewer wrote, the first part of the book raises many good points, and the second part of the book then merrily applies these points way beyond their usefulness. Read
...more
Amir Tesla
Great great book on principles of clean code.

The only problem with the book was that it’s obsessively written for Java. Even though, there are still many principles you can apply to any other languages from C to Python.

Although have to say, you have to do your own research for applicability of the principle in your target language. For instance, the inversion of control (IoC)and Dependency Injection (DI) are quite common and intrinsic to Java, but it is not as straightforward in Python (becaus
...more
Kosala Nuwan Perera
Feb 07, 2011 rated it really liked it  ·  review of another edition
Shelves: favorites
I had a tough time deciding whether I really liked or It was amazing. I liked the writing style of the book. Its simple, clean, and well crafted.

First few chapters of the book makes good practical advice from naming variables-functions-classes to writing functions to testing. Most of the smells and heuristics I found in these chapters can be found in real-world as well.

Complexity kills. It sucks the life out of developers, it makes products difficult to plan, build, and test. - Ray Ozzie, CTO, M
...more
David
This is a book that one could get started on the idea of "good code" - clean, readable, elegant, simple, easy-to-test, etc. It has the usual stuff that you'd expect - good naming convention, testable code, single responsibility, short classes, short methods - but I feel like it takes them on overdose, going to extremes (IMHO) such as setting short explicit lengths, forbidding certain constructs, and what seems like refactoring for the sake of it.

I'd actually recommend other books like the Pragma
...more
Fahad Naeem
I started reading it after a lot of recommendations but it wasn't gone up to the standards.
Clean Code is about writing code which is not only understandable to the code him/herself but to the others as well.

Robert Martin mainly used a lot of JAVA code which is not applicable to other languages like Python and JAVASCRIPT. This book should not be this much lengthy and other languages must be covered so that every programmer can benefit from it.

I was looking forward to learn more about refactoring
...more
Erika RS
I wanted to love this book, but instead I just sort of liked it. This book is a member of the extensive genre of books on how to write clean code. It sits alongside books like Code Complete by Steve McConnell[1] and many others. Where Clean Code promised to differentiate itself was in the use of three case studies -- about a third of the book -- showing Martin's code cleanup techniques in action.

However, I was disappointed by that section. As someone who codes and reviews code professionally, t
...more
Craig Vermeer
Jan 04, 2010 rated it it was amazing  ·  review of another edition
Shelves: tech
This had lots of good, practical advice that spanned everything from naming to testing to concurrency. A lot of it was pretty Java centric, so I skimmed a few sections.

By far the best portions of the book were the ones where the author demonstrates -- step by step -- his process for writing code test-first, as well as refactoring.

If you get frustrated with either of the two at times, these parts of the book are *fantastic*, because you see that even someone who's been coding for 40+ years (like
...more
Nick Skelton
Feb 12, 2015 rated it it was amazing  ·  review of another edition
Shelves: coding
Uncle Bob's book was given to me by a mate at work when I first started. I was introduced to the concept of code reviews and pull requests and told to expect a lot of comments on my code reviews to start with. I was then promptly given this book to read to minimise the pain. As a developer with ten years experience, I had seen so many of the things outlined by Uncle Bob and absolutely loved his remedies to them. I am now a convert to the idea of clean code and it has definitely made me a better ...more
Rostislav Vatolin
To me this book is an extension of Martin Fowler’s “Refactoring”. As a Java developer I enjoyed it. It’s an easy read. I agree with everything, except “J1: Avoid Long Import Lists by Using Wildcards” and using less of final keyword (agree with Robert Simmons here more, he explained it in his “Hardcore Java” book). This book has some useful tips on how to avoid locks and other issues in multithreaded environment (I found it very useful).
In short, it is worth reading.
A.J. Hodges
Apr 02, 2015 rated it really liked it  ·  review of another edition
I hate to say this, but I wasn't as impressed with this book as I thought I should have been, given its place in the pantheon of programming books.

The first half was excellent, but the second half left me a bit cold. It was too Java-y, and had -- dare I say it -- too much code in it.

However, I still list this as a must read for all developers.
Alex Ott
Mar 12, 2011 rated it liked it  ·  review of another edition
Shelves: programming
Nothing new for experienced developer...
Too Java oriented in many places. Code Complete, 2ed is better from my point of view
Yevgeniy Brikman
A good book to read for any coder - perhaps not as thorough as Code Complete but much more effective than Pragmatic Programmer.

This book's biggest strength is that it includes tons of code examples, including some fairly long and in depth ones. Instead of just listing rules or principles of clean code, many of the chapters go through these code examples and iteratively improve them. The rules and principles fall out of this process and the reader is a part of developing them, which is an effect
...more
David
May 16, 2014 rated it it was ok  ·  review of another edition
I was extremely underwhelmed with Clean Code! As other reviewers have noted, this book completely Java-centric and incredibly narrow in its object-oriented focus. Nowhere on the front cover, spine, or back cover is this mentioned at all.

Clean Code also relies heavily on other published works. In the case of Fowler's Refactoring and the "Gang of Four"'s Design Patterns, I wasn't too put off by it. These are pretty standard reference books and I have them on my shelf.

But the really irritating ref
...more
Erkan Erol
Mar 01, 2017 rated it really liked it  ·  review of another edition
Writing clean code is what you must do in order to call yourself a professional. There is no reasonable excuse for doing anything less than your best.
---
“Honesty in small things is not a small thing.”
---
In code, refactor mercilessly.
---
The French poet Paul Valery advises us that a poem is never done and bears continual rework, and to stop working on it is abandonment.
---
Learning to write clean code is hard work. It requires more than just the knowledge of principles and patterns. You must sweat
...more
Nick Craske
Jul 28, 2018 rated it really liked it  ·  review of another edition
Having reignited my love of programming I have dived into learning Unity with an aim to build games. It's purely for my personal enjoyment. Clean Code is written in an accessible, relaxed and conversational style and throws light and insight on every corner of writing, maintaining and refactoring code. Using Java examples the author clearly sets out his manifesto for elegant, well structured, concise and readable code. It feels good to be coding again.
Luboš
Jul 26, 2013 rated it really liked it  ·  review of another edition
I should have read this book at the beginning of my career. On the other hand, after 10 years experience I may appreciate it even more. It is sad, that principles described in the book are not yet heavily adopted.
Darren
Nov 22, 2009 rated it it was amazing  ·  review of another edition
This book is #1 on my list of books I'd recommend to other programmers. I don't know how else to elaborate on how important I think the ideas in this book are.
Stefan Kanev
May 28, 2010 rated it really liked it  ·  review of another edition
It's a great book. The only reason I give it four stars instead of five is the extremely awkward use of private fields for passing data between functions in the examples.
Damith
Definitely worth a read ... :-)
Petar Ivanov
Dec 31, 2019 rated it really liked it  ·  review of another edition
Great book! There's a lot of ideas, techniques, tips, and tricks and examples that help you enhance your programming skills and coding style. I didn't like a lot the SerialDate case study because there was a lot of back and forth with the Appendix. It was quite hard for me to follow the refactoring of the SerialDate class.
Overall, I enjoyed reading the book and it helped me to generate more ideas on how to refactor and write better and cleaner code. Personally, I think it's a must-read for ever
...more
Marko
Feb 26, 2020 rated it it was amazing  ·  review of another edition
This book provides some very good general advice for any practicing programmer. While examples use java, the lessons transfer to any object-oriented language. Each chapter can be read separately, but they are each about writing clean code.
Mohammad Mahdi Ramezanpour
This is one the best books for programmers and I think every programmer should read it. The only problem this book has is some parts of it is written specifically for Java developers; so, you may want to skip them, if you're not a Java developer.
Abtin
Dec 25, 2019 rated it it was amazing  ·  review of another edition
Every true programmer must at least skim through this book. The techniques and methods are essential to educating a perfect programming style and you don't want to enter the market without this asset.
Tadas Talaikis
You're joking with this productivity vs time. That's old oversimplified thinking. It has some truth, but also it produces fast shortcuts that later lead to blue screens in MS presentations. I probably would always remember them, haha.

No, even more recent, Surface tab crashes on presentation:



Where's you productivity now? This is all shit, because I can create complex website in a few weeks, but then I would need months to fix various bugs (e.g. provide "support"). I always say those meaningless u
...more
« previous 1 3 4 5 6 7 8 9 next »
topics  posts  views  last activity   
In what proportion would you send or receive via the Cash app? 1 2 Jul 31, 2020 01:53AM  
7z Archive Password Recovery Tool 1 1 Jul 22, 2020 01:21AM  
How to Recover 7zip Password? 1 1 Jul 22, 2020 12:38AM  
How To Activate Cash App Card Without A QR Code? 1 1 Jul 09, 2020 04:34AM  
Why School bus Tracking Software important ? 1 2 Oct 29, 2019 04:02AM  
How to Recover Excel Password 1 4 Aug 05, 2019 12:14AM  

Readers also enjoyed

  • The Pragmatic Programmer: From Journeyman to Master
  • Design Patterns: Elements of Reusable Object-Oriented Software
  • Refactoring: Improving the Design of Existing Code
  • Head First Design Patterns
  • Effective Java
  • Code Complete
  • Test Driven Development: By Example
  • Working Effectively with Legacy Code
  • Domain-Driven Design: Tackling Complexity in the Heart of Software
  • The Software Craftsman: Professionalism, Pragmatism, Pride
  • Building Microservices: Designing Fine-Grained Systems
  • The Art of Unit Testing: With Examples in .NET
  • JavaScript: The Good Parts
  • Patterns of Enterprise Application Architecture
  • The Mythical Man-Month: Essays on Software Engineering
  • Refactoring to Patterns
  • Java Concurrency in Practice
  • Designing Data-Intensive Applications
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,040 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

News & Interviews

Some people love books. Some people fall in love. And some people fall in love with books about falling in love. Every month our team sorts throug...
19 likes · 5 comments
“Truth can only be found in one place: the code.” 64 likes
“Indeed, the ratio of time spent reading versus writing is well over 10 to 1. We are constantly reading old code as part of the effort to write new code. ...[Therefore,] making it easy to read makes it easier to write.” 39 likes
More quotes…