Home > Software Quality Tips > Software Quality Book Excerpts > Clean Code: A Handbook of Agile Software Craftsmanship, Chapter 1 -- What Is Clean Code?
Software Quality Tips:
EMAIL THIS
 TIPS & NEWSLETTERS TOPICS 

SOFTWARE QUALITY BOOK EXCERPTS

Clean Code: A Handbook of Agile Software Craftsmanship, Chapter 1 -- What Is Clean Code?


Robert C. Martin
09.09.2008
Rating: -5.00- (out of 5)


Software quality news and advice
Digg This!    StumbleUpon Toolbar StumbleUpon    Bookmark with Delicious Del.icio.us    Add to Google


Clean Code: A Handbook of Agile Software Craftsmanship

As a registered member of SearchSoftwareQuality.com, you're entitled to a complimentary copy of Chapter 1 of Clean Code: A Handbook of Agile Software Craftsmanship written by Robert C. Martin and published by Prentice Hall. "What Is Clean Code?" sweeps away misconceptions regarding responsible coding. "Uncle Bob" Martin refers to industry luminaries on the subject of clean code and sets readers up for the hard work they will be doing in later chapters of the book.


Book description:

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 (TDD)

This book is a must for any developer, software engineer, project manager, team lead, or systems analyst with an interest in producing better code.

>> Read Chapter 1: What Is Clean Code?

>> Buy the book




This chapter is an excerpt from the book, "Clean Code: A Handbook of Agile Software Craftsmanship" by Robert C. Martin, published by Prentice Hall Professional, ISBN 0-13-235088-2, Copyright 2009 Pearson. Please visit www.informit.com or Safari Books Online subscribers: http://techbus.safaribooksonline.com/9780136083238"

Rate this Tip
To rate tips, you must be a member of SearchSoftwareQuality.com.
Register now to start rating these tips. Log in if you are already a member.




Digg This!    StumbleUpon Toolbar StumbleUpon    Bookmark with Delicious Del.icio.us    Add to Google


RELATED CONTENT
Software Quality Book Excerpts
Seven Steps to Mastering Business Analysis, Ch. 1
The Software Project Manager's Bridge to Agility: Chapter 5, Scope Management
Software Security Engineering: A Guide for Project Managers -- Chapter 3, Requirements Engineering for Secure Software
Requirements Management Using IBM Rational RequisitePro: Chapter 1, Requirements Management
Implementing ITIL Configuration Management: Chapter 3, Determining Scope, Span and Granularity
Agile Software Development: The Cooperative Game, 2nd Edition -- Chapter 3, Communicating, Cooperating Teams
Inherent Quality Simplicity, Section V: The Evolution
Managing the Test People, Chapter 6: Keeping Your Beast Effective
Mastering the Requirements Process, 2nd Edition: Chapter 2, The Requirements Process
Outside-in Software Development: A Practical Approach to Building Successful Stakeholder-based Products -- Chapter 1, Introducing Outside-in Development

Methodologies
Agile Software Development: The Cooperative Game, 2nd Edition -- Chapter 3, Communicating, Cooperating Teams
Inherent Quality Simplicity, Section V: The Evolution
Outside-in Software Development: A Practical Approach to Building Successful Stakeholder-based Products -- Chapter 1, Introducing Outside-in Development
Automated Defect Prevention: Best Practices in Software Management, Chapter 1 -- The Case for Automated Defect Prevention
The Economics of Open Source Software Development -- Chapter 1, An Introduction
Model-Driven Software Development: Technology, Engineering, Management -- Chapter 2, MDSD: Basic Ideas and Terminology
Implementing the IBM Rational Unified Process and Solutions: A Guide to Improving Your Software Development Capability and Maturity -- Chapter 2, Your First Steps
Scaling Software Agility: Best Practices for Large Enterprises -- Chapter 7, The Essence of Agile
Real-Life MDA -- Chapter 1, Introduction

Agile software development
The role of user stories in agile software development
How cloud computing affects agile practices, testing
Software testing is an activity, not a phase or a department
Agile aims to bridge software requirements communications gap
Test development can be agile, too
Agile development: It isn't just for small projects
Suggestions for scaling agile
How Google developed the Chrome Web browser
Software testing on an agile project: How to get started
Static analysis tool helps software engineers find bugs during builds

RELATED GLOSSARY TERMS
Terms from Whatis.com − the technology online dictionary
acceptance test  (SearchSoftwareQuality.com)
iteration  (SearchSoftwareQuality.com)
planning board  (SearchSoftwareQuality.com)
planning game  (SearchSoftwareQuality.com)
release  (SearchSoftwareQuality.com)
release plan  (SearchSoftwareQuality.com)
spike  (SearchSoftwareQuality.com)
stand-up  (SearchSoftwareQuality.com)
story  (SearchSoftwareQuality.com)
timebox  (SearchSoftwareQuality.com)

RELATED RESOURCES
2020software.com, trial software downloads for accounting software, ERP software, CRM software and business software systems
Search Bitpipe.com for the latest white papers and business webcasts
Whatis.com, the online computer dictionary

DISCLAIMER: Our Tips Exchange is a forum for you to share technical advice and expertise with your peers and to learn from other enterprise IT professionals. TechTarget provides the infrastructure to facilitate this sharing of information. However, we cannot guarantee the accuracy or validity of the material submitted. You agree that your use of the Ask The Expert services and your reliance on any questions, answers, information or other materials received through this Web site is at your own risk.



Software Design & Testing - Project Management
About Us  |  Contact Us  |  For Advertisers  |  For Business Partners  |  Site Index  |  RSS
SEARCH 
TechTarget provides enterprise IT professionals with the information they need to perform their jobs - from developing strategy, to making cost-effective IT purchase decisions and managing their organizations' IT projects - with its network of technology-specific Web sites, events and magazines.

TechTarget Corporate Web Site  |  Media Kits  |  Reprints  |  Site Map




All Rights Reserved, Copyright 2006 - 2008, TechTarget | Read our Privacy Policy
  TechTarget - The IT Media ROI Experts