Clean Coder, The: A Code of Conduct for Professional Programmers, 1st edition

Published by Pearson (May 13, 2011) © 2011

  • Robert C. Martin
Products list
  • Available for purchase from all major ebook resellers, including InformIT.com
Products list

Details

  • A print text
  • Free shipping
  • Also available for purchase as an ebook from all major ebook resellers, including InformIT.com
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 honour, 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

  • What it means to behave as a true software craftsman
  • How to deal with conflict, tight schedules, and unreasonable managers
  • How to get into the flow of coding, and get past writer’s block
  • How to handle unrelenting pressure and avoid burnout
  • How to combine enduring attitudes with new development paradigms
  • How to manage your time, and avoid blind alleys, marshes, bogs, and swamps
  • How to foster environments where programmers and teams can thrive
  • When to say “No”–and how to say it
  • When to say “Yes”–and what yes really means
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

Need help? Get in touch