'Clean Code' is divided into three parts. The first describes the principles, patterns, and practices of writing clean code. The second part consists of several case studies of increasing complexity. Each case study is an exercise in cleaning up code - of transforming a code base that has some problems into one that is sound and efficient. The third part is the payoff - a single chapter containing a list of heuristics and 'smells' gathered while creating the case studies. The result is a knowledge base that describes the way people think when they write, read, and clean code. Readers will come away from this book understanding - How to tell the difference between good and bad code; How to write good code and how to transform bad code into good code; How to create good names, good functions, good objects, and good classes; How to format code for maximum readability; How to implement complete error handling without obscuring code logic; How to unit test and practice test-driven development.