Review: Working Effectively with Legacy Code. Jack of all Trades
I haven’t fully finished this book, there are some chapters left, and for some time I am not planning finishing it. So before putting it on a shelf, I am going to give it a review (and explain why I stopped reading it).
One thing to say is that I am not putting it because it is a worthless or bad reading. Actually the content on the book is quite good. It gives a lot of really great advises. But also it has few flaws. So lets start with them.
As the review title says, the book seemed to be “jack of all trades”. On one chapter it will give you a design pattern. Another may show some C++ or Java language feature, yet another one will give some testing advice and etc. Maybe it is not that bad, but what I really wanted was some ideas on how to work effectively with legacy code. All other details are not that interesting to me and they distract from the problem. If I would want advises on design patterns, I would just pick a design pattern book.
Another thing is that the further I went with the reading, the more it seemed to repeat itself. The same advice will repeated over and over again. And that is the main reason I’ve decided to stop and read something else. The more I’ve read, the less I seemed to gain from it.
Despite the issues I’ve mentioned, I feel like I have learned a lot from what I have read. I work as a solo developer and the book felt like a programming buddy. Whenever I doubted my decisions or had mixed thoughts, it would clear things up. There is, after all, huge amounts of experience written in the chapters of this book.
Another great thing is how well it is organized. Even though I was reading from cover to cover, I was also using it as a reference. Whenever I’ve seen that it has a chapter close to what I am trying to solve, I would turn to it for advises and encouragement.
Overall, it is a great book, but it could have easily been 150 pages instead of 450. It is full of great examples and advises. Author has huge experience and was able to share it well — it is easy to read, but at the same time very informative. Highly recommended, even if you will not read it all.
P.s. It is not only good for developers working with legacy code. It might give you some advises how to manage your source code that it won’t become pain to work with.