Book description
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.
Related Learning
Video: Clean Code Fundamentals (Clean Coders Video Series)
Books: Clean Coder, Clean Architecture, Clean Agile, Clean Craftsmanship
Live Courses: See upcoming live courses by Uncle Bob
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 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.
Table of contents
- Cover Page
- Series Page
- Title Page
- Copyright Page
- Dedication
- Contents
- Foreword
- Introduction
- On the Cover
- Chapter 1: Clean Code
-
Chapter 2: Meaningful Names
- Introduction
- Use Intention-Revealing Names
- Avoid Disinformation
- Make Meaningful Distinctions
- Use Pronounceable Names
- Use Searchable Names
- Avoid Encodings
- Avoid Mental Mapping
- Class Names
- Method Names
- Don’t Be Cute
- Pick One Word per Concept
- Don’t Pun
- Use Solution Domain Names
- Use Problem Domain Names
- Add Meaningful Context
- Don’t Add Gratuitous Context
- Final Words
-
Chapter 3: Functions
- Small!
- Do One Thing
- One Level of Abstraction per Function
- Switch Statements
- Use Descriptive Names
- Function Arguments
- Have No Side Effects
- Command Query Separation
- Prefer Exceptions to Returning Error Codes
- Don’t Repeat Yourself
- Structured Programming
- How Do You Write Functions Like This?
- Conclusion
- SetupTeardownIncluder
- Bibliography
- Chapter 4: Comments
- Chapter 5: Formatting
- Chapter 6: Objects and Data Structures
- Chapter 7: Error Handling
- Chapter 8: Boundaries
- Chapter 9: Unit Tests
- Chapter 10: Classes
-
Chapter 11: Systems
- How Would You Build a City?
- Separate Constructing a System from Using It
- Scaling Up
- Java Proxies
- Pure Java AOP Frameworks
- AspectJ Aspects
- Test Drive the System Architecture
- Optimize Decision Making
- Use Standards Wisely, When They Add Demonstrable Value
- Systems Need Domain-Specific Languages
- Conclusion
- Bibliography
- Chapter 12: Emergence
- Chapter 13: Concurrency
- Chapter 14: Successive Refinement
- Chapter 15: JUnit Internals
- Chapter 16: Refactoring SerialDate
- Chapter 17: Smells and Heuristics
- Appendix A: Concurrency II
- Appendix B: org.jfree.date.SerialDate
- Appendix C: Cross References of Heuristics
- Epilogue
- Index
Product information
- Title: Clean Code: A Handbook of Agile Software Craftsmanship
- Author(s):
- Release date: August 2008
- Publisher(s): Pearson
- ISBN: 9780136083238
You might also like
book
Design Patterns: Elements of Reusable Object-Oriented Software
Capturing a wealth of experience about the design of object-oriented software, four top-notch designers present a …
book
Head First Design Patterns, 2nd Edition
What will you learn from this book? You know you don't want to reinvent the wheel, …
book
Head First Software Architecture
What will you learn from this book? If you're a software developer looking for a quick …
book
Designing Data-Intensive Applications
Data is at the center of many challenges in system design today. Difficult issues need to …