Even bad code can function. But if code isn't clean, it can bring a development organization to its knees. Many hours and a lot of resources are lost every year, because of poorly written code. However, this doesn't have to be the case.
The software expert Robert C. Martin offers a groundbreaking paradigm in his bookClean Code: A Handbook of Agile Software Craftsmanship. Martin has teamed up with his associates from Object Mentor to translate their best agile practice of cleaning code "on the fly" into this book. It will teach you the values of a software craftsman and make you a better programmer; in which you will only succeed if you work hard.
In Clean Code you will be reading lots of code. Furthermore, you will be stimulated to think about what is right about certain code, or what is wrong with it. More importantly, you will be challenged to reconsider your professional values and your commitment to programming.
Clean Code is separated into three chunks. First, the principles, patterns, and practices of writing code is described. Second, art 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 we think when we 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 This book is a must for any developer, software engineer, project manager, team lead, or systems analyst with an interest in producing better code.