HAPPY BOOKSGIVING
Use code BOOKSGIVING during checkout to save 40%-55% on books and eBooks. Shop now.
This eBook includes the following formats, accessible from your Account page after purchase:
EPUB The open industry format known for its reflowable content and usability on supported mobile devices.
PDF The popular standard, used most often with the free Acrobat® Reader® software.
This eBook requires no passwords or activation to read. We customize your eBook by discreetly watermarking it with your name, making it uniquely yours.
Also available in other formats.
Register your product to gain access to bonus material or receive a coupon.
May 2022: Listen to Bob discuss the book and concepts on the TechLead Journal podcast.
How to Write Code You're Proud of . . . Every Single Day
". . . [A] timely and humble reminder of the ever-increasing complexity of our programmatic world and how we owe it to the legacy of humankind--and to ourselves--to practice ethical development. Take your time reading Clean Craftsmanship. . . . Keep this book on your go-to bookshelf. Let this book be your old friend--your Uncle Bob, your guide--as you make your way through this world with curiosity and courage."In Clean Craftsmanship, the legendary Robert C. Martin ("Uncle Bob") has written the principles that define the profession--and the craft--of software development. Uncle Bob brings together the disciplines, standards, and ethics you need to deliver robust, effective code and to be proud of all the software you write.
--From the Foreword by Stacia Heimgartner Viscardi, CST & Agile Mentor
Download the sample pages (includes Chapter 1)
Foreword xvii
Preface xxi
Acknowledgments xxvii
About the Author xxix
Chapter 1: Craftsmanship 1
Part I: The Disciplines 11
Extreme Programming 13
Test-Driven Development 15
Refactoring 16
Simple Design 17
Collaborative Programming 17
Acceptance Tests 18
Chapter 2: Test-Driven Development 19
Overview 20
The Basics 35
Conclusion 79
Chapter 3: Advanced TDD 81
Sort 1 82
Sort 2 87
Getting Stuck 95
Arrange, Act, Assert 103
Test Doubles 108
Architecture 143
Conclusion 145
Chapter 4: Test Design 147
Testing Databases 148
Testing GUIs 150
Test Patterns 154
Test Design 160
Transformation Priority Premise 184
Conclusion 196
Chapter 5: Refactoring 197
What Is Refactoring? 199
The Basic Toolkit 200
The Disciplines 217
Conclusion 221
Chapter 6: Simple Design 223
YAGNI 226
Covered by Tests 228
Maximize Expression 233
Minimize Duplication 237
Minimize Size 239
Chapter 7: Collaborative Programming 241
Chapter 8: Acceptance Tests 245
The Discipline 248
The Continuous Build 249
Part II: The Standards 251
Your New CTO 252
Chapter 9: Productivity 253
We Will Never Ship S**T 254
Inexpensive Adaptability 256
We Will Always Be Ready 258
Stable Productivity 259
Chapter 10: Quality 261
Continuous Improvement 262
Fearless Competence 263
Extreme Quality 264
We Will Not Dump on QA 265
QA Will Find Nothing 266
Test Automation 267
Automated Testing and User Interfaces 268
Testing the User Interface 269
Chapter 11: Courage 271
We Cover for Each Other 272
Honest Estimates 274
You Must Say NO 276
Continuous Aggressive Learning 277
Mentoring 278
Part III: The Ethics 279
The First Programmer 280
Seventy-Five Years 281
Nerds and Saviors 286
Role Models and Villains 289
We Rule the World 290
Catastrophes 291
The Oath 293
Chapter 12: Harm 295
First, Do No Harm 296
Best Work 306
Repeatable Proof 316
Chapter 13: Integrity 327
Small Cycles 328
Relentless Improvement 342
Maintain High Productivity 346
Chapter 14: Teamwork 355
Work as a Team 356
Estimate Honestly and Fairly 358
Respect 372
Never Stop Learning 373
Index 375