Skip to content

Clean Code A Handbook of Agile Software Craftsmanship

Spend $50 to get a free DVD!

ISBN-10: 0132350882

ISBN-13: 9780132350884

Edition: 2009

Authors: Robert C. Martin

List price: $49.99
Shipping box This item qualifies for FREE shipping.
Blue ribbon 30 day, 100% satisfaction guarantee!
Buy eBooks
what's this?
Rush Rewards U
Members Receive:
Carrot Coin icon
XP icon
You have reached 400 XP and carrot coins. That is the daily max!


Even bad code can function. But if code isnrsquo;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 doesnrsquo;t have to be that way. Noted software expert Robert C. Martin, presents a revolutionary paradigm withClean Code: A Handbook of Agile Software Craftsmanship. Martin, who has helped bring agile principles from a practitionerrsquo;s point of view to tens of thousands of programmers, has teamed up with his colleagues from Object Mentor to distill their best agile practice of cleaning code ldquo;on the flyrdquo; into a book that will instill within you the values of software craftsman, and make you a better programmer-but only if you work at it. What kind of work will you be doing? Yoursquo;ll be reading code-lots of code. And you will be challenged to think about whatrsquo;s right about that code, and whatrsquo;s wrong with it. More importantly you will be challenged to reassess your professional values and your commitment to your craft. Clean Codeis 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 ldquo;smellsrdquo; 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 What ldquo;smellsrdquo; and heuristics can help you identify bad code This book is a must for any developer, software engineer, project manager, team lead, or systems analyst with an interest in producing better code.
Customers also bought

Book details

List price: $49.99
Copyright year: 2009
Publisher: Prentice Hall PTR
Publication date: 8/1/2008
Binding: Paperback
Pages: 464
Size: 7.00" wide x 9.25" long x 1.00" tall
Weight: 1.804
Language: English

On the Cover
Clean Code
There Will Be Code
Bad Code
The Total Cost of Owning a Mess
Schools of Thought
We Are Authors
The Boy Scout Rule
Prequel and Principles
Meaningful Names
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
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?
Comments Do Not Make Up for Bad Code
Explain Yourself in Code
Good Comments
Bad Comments
The Purpose of Formatting
Vertical Formatting
Horizontal Formatting
Team Rules
Uncle Bob's Formatting Rules
Objects and Data Structures
Data Abstraction
Data/Object Anti-Symmetry
The Law of Demeter
Data Transfer Objects
Error Handling
Use Exceptions Rather Than Return Codes
Write Your Try-Catch-Finally Statement First
Use Unchecked Exceptions
Provide Context with Exceptions
Define Exception Classes in Terms of a Caller's Needs
Define the Normal Flow
Don't Return Null
Don't Pass Null
Using Third-Party Code
Exploring and Learning Boundaries
Learning log4j
Learning Tests Are Better Than Free
Using Code That Does Not Yet Exist
Clean Boundaries
Unit Tests
The Three Laws of TDD
Keeping Tests Clean
Clean Tests
One Assert per Test
Class Organization
Classes Should Be Small!
Organizing for Change
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
Getting Clean via Emergent Design
Simple Design Rule 1: Runs All the Tests
Simple Design Rules 2-4: Refactoring
No Duplication
Minimal Classes and Methods
Why Concurrency?
Concurrency Defense Principles
Know Your Library
Know Your Execution Models
Beware Dependencies Between Synchronized Methods
Keep Synchronized Sections Small
Writing Correct Shut-Down Code Is Hard
Testing Threaded Code
Successive Refinement