ptg
Praise for The Clean Coder
“‘Uncle Bob’ Martin definitely raises the bar with his latest book. He explains his
expectation for a professional programmer on management interactions, time
management, pressure, on collaboration, and on the choice of tools to use. Beyond
TDD and ATDD, Martin explains what every programmer who considers him- or
herself a professional not only needs to know, but also needs to follow in order to
make the young profession of software development grow.”
—Markus Gärtner
Senior Software Developer
it-agile GmbH
www.it-agile.de
www.shino.de
“Some technical books inspire and teach; some delight and amuse. Rarely does a
technical book do all four of these things. Robert Martin’s always have for me and
The Clean Coder is no exception. Read, learn, and live the lessons in this book and
you can accurately call yourself a software professional.”
—George Bullock
Senior Program Manager
Microsoft Corp.
“If a computer science degree had ‘required reading for after you graduate,’ this
would be it. In the real world, your bad code doesn’t vanish when the semester’s
over, you don’t get an A for marathon coding the night before an assignment’s due,
and, worst of all, you have to deal with people. So, coding gurus are not necessarily
professionals. The Clean Coder describes the journey to professionalism . . . and it
does a remarkably entertaining job of it.”
—Jeff Overbey
University of Illinois at Urbana-Champaign
“The Clean Coder is much more than a set of rules or guidelines. It contains hard-
earned wisdom and knowledge that is normally obtained through many years of
trial and error or by working as an apprentice to a master craftsman. If you call
yourself a software professional, you need this book.”
—R. L. Bogetti
Lead System Designer
Baxter Healthcare
www.RLBogetti.com
This page intentionally left blank
ptg
The Clean Coder
ptg
The Robert C. Martin Series
Visit informit.com/martinseries for a complete list of available publications.
The Robert C. Martin Series is directed at software developers, team-
leaders, business analysts, and managers who want to increase their
skills and proficiency to the level of a Master Craftsman. The series contains
books that guide software professionals in the principles, patterns, and
practices of programming, software project management, requirements
gathering, design, analysis, testing and others.
ptg
The Clean Coder
A CODE OF CONDUCT FOR
PROFESSIONAL PROGRAMMERS
Robert C. Martin
Upper Saddle River, NJ • Boston • Indianapolis • San Francisco
New York • Toronto • Montreal • London • Munich • Paris • Madrid
Capetown • Sydney • Tokyo • Singapore • Mexico City
ptg
Many of the designations used by manufacturers and sellers to distinguish their products are claimed as
trademarks. Where those designations appear in this book, and the publisher was aware of a trademark
claim, the designations have been printed with initial capital letters or in all capitals.
The author and publisher have taken care in the preparation of this book, but make no expressed or
implied warranty of any kind and assume no responsibility for errors or omissions. No liability is assumed
for incidental or consequential damages in connection with or arising out of the use of the information or
programs contained herein.
The publisher offers excellent discounts on this book when ordered in quantity for bulk purchases or
special sales, which may include electronic versions and/or custom covers and content particular to your
business, training goals, marketing focus, and branding interests. For more information, please contact:
U.S. Corporate and Government Sales
(800) 382-3419
corpsales@pearsontechgroup.com
For sales outside the United States please contact:
International Sales
international@pearson.com
Visit us on the Web: www.informit.com/ph
Library of Congress Cataloging-in-Publication Data
Martin, Robert C.
The clean coder : a code of conduct for professional programmers / Robert Martin.
p. cm.
Includes bibliographical references and index.
ISBN 0-13-708107-3 (pbk. : alk. paper)
1. Computer programming—Moral and ethical aspects. 2. Computer
programmers—Professional ethics. I. Title.
QA76.9.M65M367 2011
005.1092—dc22
2011005962
Copyright © 2011 Pearson Education, Inc.
All rights reserved. Printed in the United States of America. This publication is protected by copyright, and
permission must be obtained from the publisher prior to any prohibited reproduction, storage in a retrieval
system, or transmission in any form or by any means, electronic, mechanical, photocopying, recording, or
likewise. For information regarding permissions, write to:
Pearson Education, Inc.
Rights and Contracts Department
501 Boylston Street, Suite 900
Boston, MA 02116
Fax: (617) 671-3447
ISBN-13: 978-0-13-708107-3
ISBN-10:
0-13-708107-3
Text printed in the United States on recycled paper at RR Donnelley in Crawfordsville, Indiana.
First printing, May 2011
ptg
Between 1986 and 2000 I worked closely with Jim Newkirk, a colleague from
Teradyne. He and I shared a passion for programming and for clean code.
We would spend nights, evenings, and weekends together playing with different
programming styles and design techniques. We were continually scheming
about business ideas. Eventually we formed Object Mentor, Inc., together.
I learned many things from Jim as we plied our schemes together. But one of
the most important was his attitude of work ethic; it was something I strove to
emulate. Jim is a professional. I am proud to have worked with him, and to call
him my friend.
ptg