Software Development is not very old job, but not so young. Take a look at one of the most academic books in this sphere – “The Art of Computer Programming” written by Donald Knuth. Author started working on it in 1962, more than half a century ago! But in this post I will write my impression about another, more practical book. It is “Clean Code” by Robert Martin. He calls himself Uncle Bob.
The book firstly published in 2008. The concepts described in the book are basic and fundamental. Maybe therefore it has lots of readers and active discussions even nowadays. In “Clean Code” we see lots of guides and principles. Most of them almost “standard” in world of software development. It will be silly to ignore them.
Lots of examples
What I most like in this book that author try to explain using examples. If you read “Don’t use comments describing purpose of function”, after several pages you will see an example of such situation and description why it is not very good and how to make it better. After every chapter you will see more and more source of code, so last chapters almost fully consist of them.
Decreasing speed of reading
First chapters are about themes familiar to most of coders. So I read them very fast, but after some time I found that I need to read slower to understand all aspects author wrote about.
I want more information about some topics, but perhaps it would make book very large.
Unfortunately for not-Java developers some sections pretty specialized for Java. At least reader can get main idea from them. Anyway majority of book will be useful for all software developers.
In conclusion I want to quote one paragraph from book:
It is a myth that we can get systems “right the first time”. Instead, we should implement only today’s stories, then refactor and expand the system to implement new stories tomorrow. This is the essence of iterative and incremental agility. Test-driven development, refactoring, and the clean code they produce make this work at the code level.
Definitely this book is “must-read” for all software developers.