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

Clean Code: A Handbook of Agile Software Craftsmanship

4.40  ·  Rating details ·  12,216 ratings  ·  731 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 . M
Kindle Edition, 466 pages
Published (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…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
4.40  · 
Rating details
 ·  12,216 ratings  ·  731 reviews

More filters
Sort order
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
Francis Fish
Aug 25, 2010 rated it liked it
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
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
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
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
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
Kosala Nuwan Perera
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
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
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
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
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
Nick 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
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
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
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
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
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.
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.
Definitely worth a read ... :-)
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.
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.
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.
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
Aug 09, 2010 rated it really liked it
Recommended to Nikolay by: Stefan Kanev
I loved and I agree with the clean code values the book embodies.

Also, I loved the slight extremism of the rules: never write a function more than 15 lines, never use more than 3 arguments! Of course I will break those rules. But remembering Uncle Bob's fervor when stating the rules, I will always make sure to have a good reason to break them.

The major drawback is that the book is very Java-centric and the examples didn't prove as practical for me, as they could've been. Abstract classes, interf
Oct 28, 2008 rated it liked it  ·  review of another edition
Shelves: tech, nonfiction
This book is repetitive at times and mentions content already covered in some of the other books in the Robert C. Martin series. I think part of this repetition is due to many of the chapters being authored by different writers, which also occasionally prevents the book from flowing smoothly.

The book is a quick read and raises some interesting arguments on how code should be written. However, if you've read other books in the Robert C. Martin series, you might skip this one. Or if you have the c
Mahmoud Tantawy
Mar 07, 2017 rated it really liked it  ·  review of another edition
One of the best books about "Software Craftsmanship", a must read, specially "Chapter 17: Smells and Heuristics".

A lot of positive reviews have been written about it so i'll just add what i think can be improved.

The book can be a bit boring specially if you are not a Java developer, and even if you are, it is outdated so examples can be a bit misleading and/or seem strange, it is written when Java 5 was new!

I'd love if a modern revision of the book is published with modern examples and may be le
Yu Chao
Nov 16, 2017 rated it it was ok  ·  review of another edition
It provides some noteworthy principles to keep your code readable and clean. However, personally, I still prefer the "get things done" approach rather than "spend tons of time doing code cleaning while completing little".

I see that Martin really regards software development as an intricate art form...which I hardly agree (I see coding more of a technical tool). So that's probably the reason why I found this book quite uninteresting.
Pablo Dias
Reading this book was a slight deception, not because of the content, but mainly because it's a bit messy. The chapters don't correlate with each other very well, and the examples of refactoring are very boring (Java's fault?). Even with an excellent conclusion, that summarizes very well all the code smells you must avoid, it didn't impact me the way "The Pragmatic Programmer" did. I really hope this book works better with less experienced programmers, though.
« previous 1 3 4 5 6 7 8 9 next »
topics  posts  views  last activity   
How to Recover Excel Password 1 2 Aug 05, 2019 12:14AM  
How to Unlock PDF With PDF Unlocker 1 1 May 20, 2019 03:10AM  
How to lock the pdf watermark in documents? 1 1 May 20, 2019 03:05AM  
Book software organizer 3 6 Mar 30, 2019 12:17AM  
Repair Corrupt Exchange Database 1 2 Mar 01, 2019 09:41PM  
SF Ruby Book Club: Making good programming habits 3 27 Mar 13, 2015 03:33PM  

Readers also enjoyed

  • Refactoring: Improving the Design of Existing Code
  • Test Driven Development: By Example
  • Growing Object-Oriented Software, Guided by Tests
  • The Art of Unit Testing: With Examples in .NET
  • Working Effectively with Legacy Code
  • The Productive Programmer
  • Practices of an Agile Developer: Working in the Real World
  • Refactoring to Patterns
  • The Passionate Programmer
  • Code Complete
  • Design Patterns in Ruby
  • xUnit Test Patterns: Refactoring Test Code
  • Design Patterns: Elements of Reusable Object-Oriented Software
  • The Pragmatic Programmer: From Journeyman to Master
  • Programming Ruby: The Pragmatic Programmers' Guide
  • Seven Languages in Seven Weeks
  • Head First Design Patterns
  • Domain-Driven Design: Tackling Complexity in the Heart of Software
See similar books…

Goodreads is hiring!

If you like books and love to build cool products, we may be looking for you.
Learn more »
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
“Truth can only be found in one place: the code.” 55 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.” 34 likes
More quotes…