The Robert C. Martin Clean Code Collection consists of two bestselling eBooks:
- Clean Code: A Handbook of Agile Software Craftmanship
- The Clean Coder: A Code of Conduct for Professional Programmers
In Clean Code, legendary software expert Robert C. Martin has teamed up with his colleagues from Object Mentor to distill their best agile practice of cleaning code “on the fly” into a book that will instill within you the values of a software craftsman and make you a better programmer–but only if you work at it. You will be challenged to think about what’s right about that code and what’s wrong with it. More important, you will be challenged to reassess your professional values and your commitment to your craft.
In The Clean Coder, Martin introduces the disciplines, techniques, tools, and practices of true software craftsmanship. This book is packed with practical advice–about everything from estimating and coding to refactoring and testing. It covers much more than technique: It is about attitude. Martin shows how to approach software development with honor, self-respect, and pride; work well and work clean; communicate and estimate faithfully; face difficult decisions with clarity and honesty; and understand that deep knowledge comes with a responsibility to act.
Readers of this collection will come away understanding
- How to tell the difference between good and bad code
- How to write good code and how to transform bad code into good code
- How to create good names, good functions, good objects, and good classes
- How to format code for maximum readability
- How to implement complete error handling without obscuring code logic
- How to unit test and practice test-driven development
- What it means to behave as a true software craftsman
- How to deal with conflict, tight schedules, and unreasonable managers
- How to get into the flow of coding and get past writer’s block
- How to handle unrelenting pressure and avoid burnout
- How to combine enduring attitudes with new development paradigms
- How to manage your time and avoid blind alleys, marshes, bogs, and swamps
- How to foster environments where programmers and teams can thrive
- When to say “No”–and how to say it
- When to say “Yes”–and what yes really means
kbo4sho –
I am at a point in my development carrier where this book was just what I needed. I havent finished it yet but everything I’ve read so far has been really helpful. I found that a lot of the questions that I had been asking myself about structureing and keeping code clean were answered with this book. It has taught me to trust my gut more. If something seems like it would be more readable another way then it probably will be for instance.
K. ZIELINSKI –
This book will help you find good practices of how to write good code and how to survive in it projects. I definately recommend everyone.
Lino Adair Larios Luna –
To be good from start to finish , good options if you are a experienced developer or you are starting to code
All the practices mentioned at the books are very useful and the examples as well.
Rodrigo Bonam Fournier –
These books are a great reference for all the IT professionals independent of their level.
All the tips present in there are very usuful and I reccomend these books as a pretty source of knowledge.
Titan –
I just finish the first two charter, I have already gotten clear and easy thinking when you want to code.
So I will recommend everyone who want to manager a huge project need read this book first.
D. Vandebrake –
This should be required reading for every developer. I have not come across any practices or advice in the book that were not helpful and sound. As a result of this book I am a much faster and better programmer.
A taste of the book:
“Names should reveal intent.” “The name of a variable, function or class, should answer all the big questions. It should tell you why it exists, what it does, and how it is used. If a name requires a comment then the name does not reveal intent.”
“Functions Should Do One Thing. They Should Do It Well. They Should Do It Only.”
“The best kind of comment is one that does not need to be written.”
The most profound statement for me was “Code should be self documenting.” Every piece of code I have ever written or read has always needed extensive documentation to understand it in a reasonable time. This is not saying you should not write good docs for a public API but it is saying that simply reading the variable, function, method, class, … names should reveal what it is supposed to do and reading code once should show exactly what it does.
Following the rules the author lays out in this book pay make not only bugs easy to spot but code is clear and easy to read. Clear understandable code is very important to continued project development. Once the core code for a program is written almost 10 times as much time is spent reading what already exists verses writing new code, so the easier it is to understand the old code the faster you can add new code.
If you want to become a better developer this book is for you.
Yves Hanoulle (@YvesHanoulle) –
I bought the duo book in electronic version, to share it with a member of team I am coaching. In less then a week, that member started to refactor some of the code.
Instead of me talking about quality, the team now saw ways to increase the quality and take responsibility for it.
Thank you Uncle Bob
Shad Self –
I’ve been looking for a book like this for a while. It addresses a huge number of issues that exist in every codebase I have looked at, and includes smart, realistic methods of addressing each concern. I highly recommend this book to anyone that has ever, or will ever, write code. I thoroughly enjoyed this book and learn something new every time I open it.
Henry Rendleman –
Excellent books. Every developer should start with these in college. I wish I would have had them when I was in school, but now works well.
Fredrik Jørgensen –
Full of great advice, practices, patterns and anecdotes. Advice on anything from testing and refactoring to how to relate to your boss or how caffeine affects your coding. I found this book both very useful and very entertaining. A must-read for any professional!
Stephen Degenhardt –
These two books contain material that should be fundamental learning for any software developer. Clean Code’s focus is on writing clean, maintainable code, while The Clean Coder focuses on the responsibilities of the software developer as a professional. I cannot recommend these books enough.
Javier Chacana –
Every (so called) IT professional should read this. It’s a must for every CS student and professionals with years of experience. It opens your eyes to a new dimension (if you haven’t before), with a self explanatory examples, through code (Clean Code), and author’s experience (The Clean Coder). Even if you disagree with every thing he says, at least read it, from someone who’s been like 40 year out there. You won’t regret
Tom –
These books contain a wealth of knowledge that you likely never received in college. Robert Martin will point you in a direction that will likely lead to you being a more effective developer, a better coworker and a must-have employee.
Brad –
These two books are a must have for software developers. I highly recommend them for anyone who writes software for a living.
Paul O –
Every serious developer needs this book. In this age where new scripting languages and tools are popping up every day, concepts including quality, discipline and maturity continue to take a backseat to “cool” and easy. Even worse, copy/paste seems to have become the “norm” for young programmers. Mr. Martin reminds us of the many reasons why software is relevant, and why we should strive to produce quality software rather than being content to simply see how much script we can stuff into a web page. His inclusion of quotes and excerpts from the leading technologists and Software Engineers clearly supports the theme of the mature developer. One who builds things to last, not simply to work.
Erik Pfingsten –
What can I say that hasn’t been said. These books are classics that every programmer should read. Great concepts that will make you a better developer.
G. Scholes –
These classic books on clean code should be required reading for any programmer looking to improve their craft. These books contain basic guidelines for making your code readable, maintainable and reusable. Writers and reporters use style guides and Strunk and White. This set should be considered a programmer’s Strunk and White.
Jeff –
This books goes into detail of many parts of the art of programming. I was able to identify and fix a few weak points with my own style.
Amethysta Herrick –
I have been following Bob Martin’s blog for quite a while, so I didn’t expect to see a lot of new stuff from either of these two books. In fact, I’ve been meaning to read them for so long, this review may be obsolete by now. Martin is clearly very passionate about code that is clean and maintainable. Both of the books display that. I tend to agree with him, although – as might be expected as a fellow software engineer – his style sometimes differs from mine.
As an example, Martin believes that code should be clean enough not to require any comments. Personally, I like comments. If I don’t have to switch context from English to a coding language, I prefer that. Having said that, Martin’s point that comments can get out of date is a good one. The code can’t lie, while comments can. My belief, however, is that if the developer is indeed a true “professional,” he will care enough to clean up comments. Given, there is no way to mandate that, but if we are supposed to take the time to craft our code thoughtfully, certainly we can consider documentation to be a part of that.
Martin – as noted – is very passionate. I like that, up to the point where his suggestions sound like laws. Yes, we should all be professionals. Calling into question one person’s professionalism because of a practice that isn’t Martin’s first choice doesn’t help anybody, however. I felt that the books devolve into name-calling rather than always offering helpful hints. I do agree that being a professional is critical to success. I don’t agree that calling people unprofessional in the hopes that they will shape up is the best way to help our profession.
The second book is filled with a bunch of anecdotes. I enjoyed them, but I’m also coming from almost 20 years in the field as well, so some of them really rang true. I’m not sure if brand-new developers will get a lot out of them. Sometimes, people need to fail to see that what they are doing isn’t working.
Overall, these books were enjoyable. I’m glad that I finally read them, although I didn’t learn much that I haven’t already gotten from Martin’s blog. It’s nice to have all of that info in one place, however.
Ryan –
Read both books mostly cover to cover*. I started doing code kata sessions with some of my co-workers based on the recommendations in the book.
*I’m an embedded C developer by day (No C++ compilers for the parts I work with or I’d be an embedded C++ developer), so I skipped over the chapter on JUnit.
Techit Ung-Arunyawee –
Very clear explanation and concise.
In later chapters when the author tells stories about his working experience can be a bit boring but it’s still really helpful.
Recommended for anyone who wants to take programming professionally.
Rick –
Excellent set of books, a must read for every software engineer.
neozenith –
There are some timeless truths in this book and I’d recommend it to all aspiring software developers as core reading. That said in an attempt to provide practical advice the specifics have not stood the test of time. So I recommend reading it. I also recommend reading it in a way that you think more about the take away message than the specific words on the page. I can see why it is a classic though.
Guill. –
Believe it or not, I’ve been coding for as long as I remember. I’ve also been reading and writing about psychology and philosophy. This book combines both (for me), and has been one of the most useful books I’ve read about code. The bump it gave to the quality of my work and of my enjoyment of it is unmeasurable. Thank you for this great book, deeply grateful.
gadi –
Great, Exactly like I imagined
Pedro Manoel –
Gostei muito desta coleção, mas acredito que aproveitei ela muito mais agora do que aproveitaria no início da minha carreira. O uncle Bob tem um jeito de escrever que é bastante voltado para a sua opinião e sua história, e para uma pessoa começando, é fácil absorver essas palavras como verdade.
Muitas das ideias dos dois livros são ótimas. Sobre o clean code, teste com sua equipe. Esse é o melhor jeito de validar os padrões que ele descreveu. Sobre o clean coder, tenha atenção para o fato que algumas das posturas descritas por ele não valem para todo mundo. Por exemplo, nem todas as pessoas tem a mesma segurança de emprego que uma pessoa como ele teria, e portanto muitas posturas adversariais seriam causa para demissão.
No geral, muito bom! Mas leia com atenção 🙂
Fellipe Borges –
Leitura obrigatória pra quem deseja ser um bom desenvolvedor de software.
Harshdeep Mehta –
Uncle Bob is an opinioned man, and that shows in his books.
First book, “Celan Code” shows age. It has several good suggestions, but several of them are either already ironed out by tools and developer culture. But certainly a good book for someone starting programming career.
Second book is gem. It defines what a “Professional” Developer mean. What kind of mindset and attitude needed to be one. Defines “Craftsmanship”. Awesome book for any age group.
If anyone prefer to buy just one book out of these two books from Uncle Bob then go for second one, “The Clean Coder”, though both are good.