Clean Code
Clean Code, at this point, has become a canonized reference for software developers. The book begins by extolling the importance of a clean code base. Software with a low quality code base will become more and more difficult to change and improve until the benefit no longer justifies the costs. Getting code to work correctly and meet specifications is of course top priority, but equally as important is scrutinizing the code and ensuring its authors are constantly optimizing the code so that change is as cheap as possible. We cannot predict the future, we cannot foresee the evolution that our software will inevitably have to go through. We only know that the code will need to be changed in the future and will have to evolve. With that out of the way, Mr. Martin dives into his arsenal of experience to teach us techniques used for creating high quality, changeable code. Techniques on handling variable names, functions, avoiding comments, visual layout of code, and code architecture are covered. He also enlists help from other master developers for different chapters. Chapter 7 on error handling, written by Michael Feathers, was done really well. I actually purchased a book by him after reading his chapter. After an overview of the techniques, the author then dives into specific code bases and walks us through refactoring. This let's readers see how, like writing, code begins often as a rough draft and is only refined after the rough draft is finished. Its oftentimes very difficult, if not impossible, to understand the complete algorithm before writing out the code. The answer is revealed and understanding is gained only as we work through the problem. This is why coding architecture cannot be optimized until the full idea is expressed in a rough draft. This is why coding cannot be rushed if it is to be sustainable. The final section of Clean Coders enumerates the various techniques into a nice concise set of guidelines for reference and offers a nice review of the topics covered.