I’ve recently read “Clean Code” by Robert C. Martin and… I wish I’d read this book 10 years ago when I was starting my journey as a professional developer. Let me explain to you why I believe that every Junior Developer should read… at least part of this book.
Short info about the author, Robert C. Martin, or Uncle Bob as some of you may know him, is an author of many books about programming. After reading Clean Code I started reading Clean Architecture so I can also review it for you, but going back to Clean Code, this is probably his most popular and well-known book.
Let’s start with the pros, the book is written using really simple language, so even if your English is not perfect, you should be able to understand it without any problem.
From my perspective, most of the rules described in this book are really worth following, regarding the language you are using for development. If only part of those rules would be obligatory for every software developer, a lot of projects I’ve met in my life would work better… some would work way better.
Another good thing is that the book is separated into independent chapters, each of them talking about different aspects of programming, like classes, comments, functions, variables etc. You can read them in any order, so you can start with what interests you the most.
Some of those rules are too strict in my opinion, like the max number of parameters in function, but despite this, they allow us to notice the problem of too many parameters in the functions we write. There are a lot more examples that at least help us to notice the problem.
Each chapter is separated into different types of rules you should follow or bad habits you should avoid, many of them are illustrated not only by words but also by short and simple examples written in Java.
And here we come to the cons…
Just to clarify, the fact that this book was written mainly for Java Developers doesn’t mean that people programming in other other languages cannot take advantage of it. Examples are usually simple and you don’t have to know Java to understand them, but…
As I mentioned at the beginning, not everyone should read the whole book, because a significant part of it, (maybe a half of it?) is very very Java specific. If you are not a Java developer, those things will not help you at all. For example chapters about error Handling and Concurrency are so Java specific, that it’s very hard to use tips you can find there in other languages.
Another problem is that it is easy to notice that this book is getting old, chapters like the one about formatting are no longer helpful, we have so many IDEs with auto formatting, linters and formatters, this stuff is really automated right now and this is only one example.
Going back to age, this book was written mainly for Java developers, nearly 20 years ago, when the Object Oriented Programming paradigm was very popular… that’s a fact and a problem, because it’s not very helpful for programmers using functional languages, like clojure, elixir, some rules are not suitable even for languages which support multi-paradigm programming, mixing oop and functional.
3. Overall verdict
Ok, that’s it, I hope you enjoyed this review and it helped you, if you prefer to watch instead of reading then see my review on youtube: https://youtu.be/mDSSuOrarcs