Do you know those books that make you want to grab a computer and start coding – and you only hold off, because there are more interesting things to come?
Those books, that confirm your “I always thought it should be like this” feelings and add a lot of new thoughts and knowledge to that?
Those books you somehow need to tell others about?
This is one of them.
It starts with an overview what Clean Code is and how to achieve it, neglecting not even the simplest things like naming, formatting or comments. I liked the Boys scout rule best which says: “Always check-in the code a little cleaner than you checked it out” (of course, originally it’s about campgrounds).
Next come some best practices on how to deal with third party code or how to come up with a good system design – matters left out in all similar books I read so far. Everything is illustrated with tons of examples, you can join the author refactoring real world programs like a JUnit class. The book ends with a handy collection of code smells and how to eliminate them.
It is written in a very liekable way, the author is not afraid of critisising his own code and shows that there’s always room for improvement – even for experienced programmers. There’s also a lot of reasoning and explanations why things are good or evil, the book is not as dogmatic as advisory books often tend to be.
If you have to review code, you wish every developer in the world would have read the book so that you don’t have to see things like
-
i++; // increment i (Oh, really?)
again. As Nebojsa, one of the developers at conject says: “A must read for every developer!”




The book is already on my shelf, waiting to be read…
One fascinating thing is that this book has inspired some people from the Cologne .NET Usergroup to establish a kind of professional developers guild (wearing coloured wristbands as sign of commitment):
http://www.clean-code-developer.net/ (in German)
I’m curious how you like it! And I’m wondering whether someone really uses these wristbands and keeps switching them from one arm to the other