Skip to product information
1 of 1

Clean Code: A Handbook of Agile Software Craftsmanship

Clean Code: A Handbook of Agile Software Craftsmanship

Marc Notes: Includes bibliographical references and index. Brief Description: Even bad code can function. But if code isn't clean, it can bring a development organisation to its knees. Every year,...

Regular price $74.99
Sale price $74.99 Regular price
Sale Sold out
Shipping calculated at checkout.

Vendor

Pearson

Type

Print Books

Binding

Spiral Bound

People are viewing this right now

View full details

Marc Notes:
Includes bibliographical references and index.

Brief Description:
Even bad code can function. But if code isn't clean, it can bring a development organisation 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 distil their best agile practice of cleaning code "on the fly" into a book that will instil 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


Jacket Description/Back:
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 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.



Biographical Note:
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.

Table of Contents:
Foreword xix
Introduction xxv
On the Cover xxix

Chapter 1: Clean Code 1
There Will Be Code 2
Bad Code 3
The Total Cost of Owning a Mess 4
Schools of Thought 12
We Are Authors 13
The Boy Scout Rule 14
Prequel and Principles 15
Conclusion 15
Bibliography 15

Chapter 2: Meaningful Names 17
Introduction 17
Use Intention-Revealing Names 18
Avoid Disinformation 19
Make Meaningful Distinctions 20
Use Pronounceable Names 21
Use Searchable Names 22
Avoid Encodings 23
Avoid Mental Mapping 25
Class Names 25
Method Names 25
Don't Be Cute 26
Pick One Word per Concept 26
Don't Pun 26
Use Solution Domain Names 27
Use Problem Domain Names 27
Add Meaningful Context 27
Don't Add Gratuitous Context 29
Final Words 30

Chapter 3: Functions 31
Small! 34
Do One Thing 35
One Level of Abstraction per Function 36
Switch Statements 37
Use Descriptive Names 39
Function Arguments 40
Have No Side Effects 44
Command Query Separation 45
Prefer Exceptions to Returning Error Codes 46
Don't Repeat Yourself 48
Structured Programming 48
How Do You Write Functions Like This? 49
Conclusion 49
SetupTeardownIncluder 50
Bibliography 52

Chapter 4: Comments 53
Comments Do Not Make Up for Bad Code 55
Explain Yourself in Code 55
Good Comments 55
Bad Comments 59
Bibliography 74

Chapter 5: Formatting 75
The Purpose of Formatting 76
Vertical Formatting 76
Horizontal Formatting 85
Team Rules 90
Uncle Bob's Formatting Rules 90
Chapter 6: Objects and Data Structures 93
Data Abstraction 93
Data/Object Anti-Symmetry 95
The Law of Demeter 97
Data Transfer Objects 100
Conclusion 101
Bibliography 101

Chapter 7: Error Handling 103
Use Exceptions Rather Than Return Codes 104
Write Your Try-Catch-Finally Statement First 105
Use Unchecked Exceptions 106
Provide Context with Exceptions 107
Define Exception Classes in Terms of a Caller's Needs 107
Define the Normal Flow 109
Don't Return Null 110
Don't Pass Null 111
Conclusion 112
Bibliography 112

Chapter 8: Boundaries 113
Using Third-Party Code 114
Exploring and Learning Boundaries 116
Learning log4j 116
Learning Tests Are Better Than Free 118
Using Code That Does Not Yet Exist 118
Clean Boundaries 120
Bibliography 120

Chapter 9: Unit Tests 121
The Three Laws of TDD 122
Keeping Tests Clean 123
Clean Tests 124
One Assert per Test 130
F.I.R.S.T. 132
Conclusion 133
Bibliography 133

Chapter 10: Classes 135
Class Organization 136
Classes Should Be Small! 136
Organizing for Change 147
Bibliography 151

Chapter 11: Systems 153
How Would You Build a City? 154
Separate Constructing a System from Using It 154
Scaling Up 157
Java Proxies 161
Pure Java AOP Frameworks 163
AspectJ Aspects 166
Test Drive the System Architecture 166
Optimize Decision Making 167
Use Standards Wisely, When They Add Demonstrable Value 168
Systems Need Domain-Specific Languages 168
Conclusion 169
Bibliography 169

Chapter 12: Emergence 171
Getting Clean via Emergent Design 171
Simple Design Rule 1: Runs All the Tests 172
Simple Design Rules 2-4: Refactoring 172
No Duplication 173
Expressive 175
Minimal Classes and Methods 176
Conclusion 176
Bibliography 176

Chapter 13: Concurrency 177
Why Concurrency? 178
Challenges 180
Concurrency Defense Principles 180
Know Your Library 182
Know Your Execution Models 183
Beware Dependencies Between Synchronized Methods 185
Keep Synchronized Sections Small 185
Writing Correct Shut-Down Code Is Hard 186
Testing Threaded Code 186
Conclusion 190
Bibliography 191

Chapter 14: Successive Refinement 193
Args Implementation 194
Args: The Rough Draft 201
String Arguments 214
Conclusion 250

Chapter 15: JUnit Internals 251
The JUnit Framework 252
Conclusion 265

Chapter 16: Refactoring SerialDate 267
First, Make It Work 268
Then Make It Right 270
Conclusion 284
Bibliography 284

Chapter 17: Smells and Heuristics 285
Comments 286
Environment 287
Functions 288
General 288
Java 307
Names 309
Tests 313
Conclusion 314
Bibliography 315

Appendix A: Concurrency II 317
Client/Server Example 317
Possible Paths of Execution 321
Knowing Your Library 326
Dependencies Between Methods Can Break Concurrent Code 329
Increasing Throughput 333
Deadlock 335
Testing Multithreaded Code 339
Tool Support for Testing Thread-Based Code 342
Conclusion 342
Tutorial: Full Code Examples 343

Appendix B: org.jfree.date.SerialDate 349

Appendix C: Cross References of Heuristics 409

Epilogue 411
Index 413



Publisher Marketing:
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 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.





Author: Martin, Robert
Publisher: Pearson
Binding: Paperback
Pub Date: 2008-08-01
BISAC: Computers|Software Development & Engineering|Quality Assurance & Testing|Computers|Programming|General
Subjects: Computer software|Reliability|Agile software development
Weight: 1.68 lbs
ISBN: 9780132350884
ASIN: -
SKU: SP-9780132350884

Shipping Information: Free delivery on all orders over $45, arrives within 3–5 days, you can also choose expedited shipping

Returns Information: 90-day return policy begins once the item ships, we cover the round-trip shipping costs for returns caused by quality issues (Return Address: 8039 S 192nd ST, STE 120, Kent, WA, 98032)

Exchanges Information: The new order will be processed once the old order is in transit back to the warehouse. Customers will only be charged for the old order if it has not been returned to the warehouse within 14 days

After-Sales Service: Simply email your requirements to support@westbindery.com, and we will process them as soon as possible upon receipt

Customer Service: Online 24/7, we recommend contacting us via email as a first choice, though you can also chat with us online

Lifetime Warranty: At West Bindery, we are committed to providing you with nothing but the best. We want you to be completely satisfied with your purchase. That's why all West Bindery books come standard with a lifetime warranty

Customer Reviews

Be the first to write a review
0%
(0)
0%
(0)
0%
(0)
0%
(0)
0%
(0)

Q: How do I track my order?

A: Order Tracking InformationOnce your order has been placed and processed, you will receive a confirmation email containing your order details. This email will include:

  • A tracking number
  • A link to our tracking page

How to Track Your OrderClick on the tracking number link in your confirmation email.
Important Notes: Tracking information may not be immediately available after you place your order. It can take up to 36 hours for the tracking number to activate in our system. If no updates are visible right away, please check back later.


Q: What if my package gets lost or arrives damaged?

A: Lost packages: At West Bindery, we strive to ensure every order reaches you in perfect condition. In the event that your order is lost during transit, please reach out to our customer support team here with your order number and any relevant details.
Damaged packages: Please report to our customer support team here within 24 hours of receiving the order and include photos of the damaged items or package. We will review the provided documentation and, if necessary, arrange for a replacement or issue a refund.


Q: Can I change my shipping address after my order is submitted?

A: Unfortunately, we’re unable to change the shipping address once your order has been submitted. If you’ve entered the wrong address, please contact us at support@westbindery.com as soon as possible—we’ll do our best to help before your order ships.


Q: What happens if I accidentally ordered multiple copies of the same book?

A: If you have accidentally ordered multiple copies of the same book, you can return the excess copies by following our return process. Please ensure the items are in their original condition and returned within the 90-day window from the shipping date. Upon receipt and inspection of the items, if the refund is approved, it will be processed on your original payment method. Visit our return center and follow the provided instructions to ensure a smooth and timely return.

Q: I received an incomplete order, what should I do?

A: How to Report an Incomplete Order: To help us address your concern, please follow these steps:

  1. Email our support team at support@westbindery.com with:Your order numberThe email address associated with your order
  2. Let us know which item(s) is/are missing from your order.

What Happens Next: Our team will verify your order and investigate the issue. We will contact you within 1 business day with an update or resolution, including sending the missing item(s) or other suitable options.

Recently Viewed