I think the fact that this book has taken me so long to read probably says all I need to say.
I had quite a few issues with this book, and found myself disagreeing with a lot of points that were made – I’m looking forward to doing a talk on this book to my team at work to see if they agree. I’m kind of glad I didn’t read this book a few years ago when I might have taken everything that was written as fact.
The first half of the book was a lot better than the second, but when it got to the section about comments, I found myself not wanting to read any more – it just seemed to completely violate everything I have previously read about clean code.
Ousterhout suggests that everything should have a comment – classes, variables, methods etc. We definitely don’t practice this in our company, it’s too easy for comments to get out of date, and your code should be easy to understand anyway – Ousterhout’s arguments for this are that your comments should be local to your code so any changes should be easy to spot in code review whether the comments are out of date – sorry, I’m just not going to buy into that.
I will say there were definitely positives, it wasn’t all bad, there were many parts of the book that made me think. Some things I’ve never considered before, and some things that I didn’t necessarily agree with, but I had to weigh up in my head before I could make a decision.
“Even if you are certain that there is only one reasonable approach, consider a second design anyway, no matter how bad you think it will be. It will be instructive to think about the weaknesses of that design and contrast them with the features of other designs.”
“When developing a module, look for opportunities to take a little bit of extra suffering upon yourself in order to reduce the suffering of your users.”
I could go on, but I think I’d just say that I probably wouldn’t really recommend this book. At least in our team, I think we have already established better working practices than those described in this book, so I don’t think it was really a big help for me to read it to be honest, but your mileage may vary.