HAPPY BOOKSGIVING
Use code BOOKSGIVING during checkout to save 40%-55% on books and eBooks. Shop now.
Register your product to gain access to bonus material or receive a coupon.
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.
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.
Audiobook now available at your favorite audiobook retailer
Programmers who endure and succeed amidst swirling uncertainty and nonstop pressure share a common attribute: They care deeply about the practice of creating software. They treat it as a craft. They are professionals.
In The Clean Coder: A Code of Conduct for Professional Programmers, legendary software expert Robert C. Martin introduces the disciplines, techniques, tools, and practices of true software craftsmanship. This book is packed with practical advice–about everything from estimating and coding to refactoring and testing. It covers much more than technique: It is about attitude. Martin shows how to approach software development with honor, self-respect, and pride; work well and work clean; communicate and estimate faithfully; face difficult decisions with clarity and honesty; and understand that deep knowledge comes with a responsibility to act.
Readers will learn
Great software is something to marvel at: powerful, elegant, functional, a pleasure to work with as both a developer and as a user. Great software isn’t written by machines. It is written by professionals with an unshakable commitment to craftsmanship. The Clean Coder will help you become one of them–and earn the pride and fulfillment that they alone possess.
An Academy for Software Craftsmen? An Interview with Founder Ken Auer
Do Professional Programmers Need a Code of Conduct? An Interview with Robert C. "Uncle Bob" Martin
'Not Invented Here' Syndrome: How to Break the Habit of Reinventing Code
Programming with SOLID Principles
Putting the "Journey" in Journeyman Software Developer: An Interview with Corey Haines
Source Code Is Dead! Long Live Source Code!
Ten Years Of Agile: An Interview with Robert C. "Uncle Bob" Martin
Foreword xiii
Preface xix
Acknowledgments xxiii
About the Author xxix
On the Cover xxxi
Pre-Requisite Introduction 1
Chapter 1: Professionalism 7
Be Careful What You Ask For 8
Taking Responsibility 8
First, Do No Harm 11
Work Ethic 16
Bibliography 22
Chapter 2: Saying No 23
Adversarial Roles 26
High Stakes 29
Being a “Team Player” 30
The Cost of Saying Yes 36
Code Impossible 41
Chapter 3: Saying Yes 45
A Language of Commitment 47
Learning How to Say “Yes” 52
Conclusion 56
Chapter 4: Coding 57
Preparedness 58
The Flow Zone 62
Writer’s Block 64
Debugging 66
Pacing Yourself 69
Being Late 71
Help 73
Bibliography 76
Chapter 5: Test Driven Development 77
The Jury Is In 79
The Three Laws of TDD 79
What TDD Is Not 83
Bibliography 84
Chapter 6: Practicing 85
Some Background on Practicing 86
The Coding Dojo 89
Broadening Your Experience 93
Conclusion 94
Bibliography 94
Chapter 7: Acceptance Testing 95
Communicating Requirements 95
Acceptance Tests 100
Conclusion 111
Chapter 8: Testing Strategies 113
QA Should Find Nothing 114
The Test Automation Pyramid 115
Conclusion 119
Bibliography 119
Chapter 9: Time Management 121
Meetings 122
Focus-Manna 127
Time Boxing and Tomatoes 130
Avoidance 131
Blind Alleys 131
Marshes, Bogs, Swamps, and Other Messes 132
Conclusion 133
Chapter 10: Estimation 135
What Is an Estimate? 138
PERT 141
Estimating Tasks 144
The Law of Large Numbers 147
Conclusion 147
Bibliography 148
Chapter 11: Pressure 149
Avoiding Pressure 151
Handling Pressure 153
Conclusion 155
Chapter 12: Collaboration 157
Programmers versus People 159
Cerebellums 164
Conclusion 166
Chapter 13: Teams and Projects 167
Does It Blend? 168
Conclusion 171
Bibliography 171
Chapter 14: Mentoring, Apprenticeship, and Craftsmanship 173
Degrees of Failure 174
Mentoring 174
Apprenticeship 180
Craftsmanship 184
Conclusion 185
Appendix A: Tooling 187
Tools 189
Source Code Control 189
IDE/Editor 194
Issue Tracking 196
Continuous Build 197
Unit Testing Tools 198
Component Testing Tools 199
Integration Testing Tools 200
UML/MDA 201
Conclusion 204
Index 205