- Paperback: 464 pages
- Publisher: Prentice Hall; 1 edition (August 11, 2008)
- Language: English
- ISBN-10: 0132350882
- ISBN-13: 978-0132350884
- Product Dimensions: 6.9 x 1.1 x 9.1 inches
- Shipping Weight: 1.7 pounds (View shipping rates and policies)
- Average Customer Review: 4.5 out of 5 stars See all reviews (347 customer reviews)
- Amazon Best Sellers Rank: #2,360 in Books (See Top 100 in Books)
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
Clean Code: A Handbook of Agile Software Craftsmanship 1st Edition
Use the Amazon App to scan ISBNs and compare prices.
See the Best Books of 2017 So Far
Looking for something great to read? Browse our editors' picks for the best books of the year so far in fiction, nonfiction, mysteries, children's books, and much more.
Frequently bought together
Customers who bought this item also bought
From the Back Cover
Even bad code can function. But if code isn't clean, it can bring a development organization to its knees. Every year, countless hours and significant resources are lost because of poorly written code. But it doesn't have to be that way.
Noted software expert Robert C. Martin presents a revolutionary paradigm with "Clean Code: A Handbook of Agile Software Craftsmanship." Martin has teamed up with his colleagues from Object Mentor to distill their best agile practice of cleaning code "on the fly" into a book that will instill within you the values of a software craftsman and make you a better programmer--but only if you work at it.
What kind of work will you be doing? You'll be reading code--lots of code. And you will be challenged to think about what's right about that code, and what's wrong with it. More importantly, you will be challenged to reassess your professional values and your commitment to your craft.
"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 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 codeHow to write good code and how to transform bad code into good codeHow to create good names, good functions, good objects, and good classesHow to format code for maximum readabilityHow to implement complete error handling without obscuring code logicHow to unit test and practice test-driven developmentThis book is a must for any developer, software engineer, project manager, team lead, or systems analyst with an interest in producing better code.
About the Author
Robert C. “Uncle Bob” Martin has been a software professional since 1970 and an international software consultant since 1990. He is founder and president of Object Mentor, Inc., a team of experienced consultants who mentor their clients worldwide in the fields of C++, Java, C#, Ruby, OO, Design Patterns, UML, Agile Methodologies, and eXtreme programming.
If you are a seller for this product, would you like to suggest updates through seller support?
Top customer reviews
Every programmer regardless of experience should read this book. Thanks!
After having 'clean code' presented to me in video form, I had to Robert "Uncle Bob" Martin's book on Clean Code. It is simply the most effective way to develop and approach development.
From the seemingly mundane ('variable names' and 'number of lines per function') to the advanced ('single responsibility', 'test driven development'), Clean Code covers it all and it would serve young engineers well to adopt a few of these practices.
The suggestions presented in the book (meaningful names, pertinence of comments, code formatting, etc) may sound very familiar to any experienced programmer but they are presented with such a level of detail and with very illustrative examples that it is almost impossible not to learn valuable things chapter by chapter. All the examples are in Java, but the guidelines they illustrate can be applied, in most of the cases, to other languages.
The most challenging chapter to read (but also a very valuable one) was the Refactoring of the class SerialDate (from the JCommon library). It is a real-life example and the author shows step-by-step what it takes to do refactoring. The last chapter, "Smells and Heuristics" makes a very good closure presenting in categories and in a condensed way, potential problems and suggested ways to solve/mitigate them.
I enjoyed reading this book and after finishing it, I decided to apply the Boy Scout Rule. I took a module written in a procedural language and not only managed to improve the clarity of the code, but also reduced the number of lines from more than 1,100 to 650. The next person to touch this code will certainly be happy to deal with cleaner code!
The only negative is that all the code examples are in Java, which I have had very little experience with. He also spends a fair bit of time covering Java-specific techniques. While this is handy for Java programmers, I feel that he loses the rest of the audience during these sections. However, the general techniques he gives can easily be applied to almost any modern language that's used for serious commercial development.
For example, throughout the book, Uncle Bob emphasizes tiny methods that are less than five lines. Previously, I would have said that as long as you can fit it on one page, its good enough, but from his examples using concise methods, it really helps make the code more readable and cleaner. Some of his recommendations are debateable, such as limiting the use of the final keyword, but still valuable to consider.
I take a star off because I felt that a few chapters were too short, rushed, and incomplete. The 16-page Systems chapter was all over the place, talking briefly about aspect oriented programming and then mentioning the purpose of specific technologies such as EJB, Spring, Java proxies, and AspectJ.
Other chapters explained examples of lengthy sections of code stored all the way in the appendix section. This made it hard to navigate and see what was going on in each step of the example.
Most recent customer reviews
Simply put: Modifications take less time and therefore are cheaper.