Code Craft: The Practice of Writing Excellent Code by Pete GoodliffeCode Craft: The Practice of Writing Excellent Code by Pete Goodliffe

Code Craft: The Practice of Writing Excellent Code

byPete Goodliffe

Paperback | December 24, 2006

Pricing and Purchase Info

$56.60 online 
$58.50 list price
Earn 283 plum® points

Prices and offers may vary in store

Out of stock online

Not available in stores


Many programmers know how to write correct code - code that works. But not all know how to craft great code - code that is well written and easy to understand.Code Craftteaches programmers how to move beyond writing correct code to writing great code. The book covers code writing concerns, including code presentation style, variable naming, error handling, and security; and the wider issues of programming in the real world, such as good teamwork, development processes, and documentation.Code Craftpresents language-agnostic advice that is relevant to all developers, from an author with loads of practical experience. A Q&A section at the end of each chapter helps readers to review the material and makes the book suited for academic use as well.

Pete Goodliffe is a senior software engineer, currently working on embedded systems in C++. He never stays at the same place in the software food chain; from bringing new systems up, writing device drivers, through OS implementation, audio codecs, JVM implementation, to MIDI sequencing applications. He writes a regular column for accu....
Title:Code Craft: The Practice of Writing Excellent CodeFormat:PaperbackDimensions:610 pages, 9 × 7 × 1.34 inPublished:December 24, 2006Publisher:No Starch PressLanguage:English

The following ISBNs are associated with this title:

ISBN - 10:1593271190

ISBN - 13:9781593271190

Look for similar items by category:


Rated 3 out of 5 by from long winded This book has lots of good information but it is about two or three times longer than it should be. A much more concise and well "crafted" book is "The Pragmatic Programmer"
Date published: 2007-03-04

Table of Contents

ADVANCE PRAISE FOR CODE CRAFT;; Dedication; PREFACE; What's In It for Me?; Getting Better; Who Should Read This Book?; What's Covered?; How This Book is Organized; The Chapters-a Closer Look; How to Use This Book; ACKNOWLEDGMENTS; ABOUT THE AUTHOR; AT THE CODEFACE; Chapter 1: ON THE DEFENSIVE; 1.1 Toward Good Code; 1.2 Assume the Worst; 1.3 What Is Defensive Programming?; 1.4 The Big, Bad World; 1.5 In a Nutshell; 1.6 See Also; 1.7 Get Thinking; Chapter 2: THE BEST LAID PLANS; 2.1 What's the Big Deal?; 2.2 Know Your Audience; 2.3 What Is Good Presentation?; 2.4 Brace Yourself; 2.5 One Style to Rule Them All; 2.6 House Styles (and Where to Stick Them); 2.7 Setting the Standard; 2.8 Righteous Wars?; 2.9 In a Nutshell; 2.10 See Also; 2.11 Get Thinking; Chapter 3: WHAT'S IN A NAME?; 3.1 Why Should We Name Well?; 3.2 What Do We Name?; 3.3 Name Games; 3.4 The Nuts and Bolts; 3.5 A Rose by Any Other Name; 3.6 In a Nutshell; 3.7 See Also; 3.8 Get Thinking; Chapter 4: THE WRITESTUFF; 4.1 Self-Documenting Code; 4.2 Techniques for Self-Documenting Code; 4.3 Practical Self-Documentation Methodologies; 4.4 In a Nutshell; 4.5 See Also; 4.6 Get Thinking; Chapter 5: A PASSING COMMENT; 5.1 What Is a Code Comment?; 5.2 What Do Comments Look Like?; 5.3 How Many Comments?; 5.4 What Goes Inside Our Comments?; 5.5 In Practice; 5.6 A Comment on Aesthetics; 5.7 Working with Comments; 5.8 In a Nutshell; 5.9 See Also; 5.10 Get Thinking; Chapter 6: TO ERR IS HUMAN; 6.1 From Whence It Came; 6.2 Error-Reporting Mechanisms; 6.3 Detecting Errors; 6.4 Handling Errors; 6.5 Raising Hell; 6.6 Managing Errors; 6.7 In a Nutshell; 6.8 See Also; 6.9 Get Thinking; THE SECRET LIFE OF CODE; Chapter 7: THE PROGRAMMER'S TOOLBOX; 7.1 What Is a Software Tool?; 7.2 Why Worry About Tools?; 7.3 Power Tools; 7.4 Which Tools?; 7.5 In a Nutshell; 7.6 See Also; 7.7 Get Thinking; Chapter 8: TESTING TIMES; 8.1 Reality Check; 8.2 Who, What, When, and Why?; 8.3 Testing Isn't Hard . . .; 8.4 The Types of Test; 8.5 Choosing Unit Test Cases; 8.6 Design for Test; 8.7 Look! No Hands!; 8.8 The Face of Failure; 8.9 Can You Manage It?; 8.10 In a Nutshell; 8.11 See Also; 8.12 Get Thinking; Chapter 9: FINDING FAULT; 9.1 The Facts of Life; 9.2 Nature of the Beast; 9.3 Pest Extermination; 9.4 Bug Hunting; 9.5 How to Fix Faults; 9.6 Prevention; 9.7 Wasp Spray, Slug Repellent, Fly Paper . . .; 9.8 In a Nutshell; 9.9 See Also; 9.10 Get Thinking; Chapter 10: THE CODE THAT JACK BUILT; 10.1 Language Barriers; 10.2 Making Mountains out of Molehills; 10.3 Building Builds; 10.4 What Makes a Good Build System?; 10.5 The Mechanics; 10.6 Please Release Me; 10.7 Jack-of-All-Trades, Buildmaster Of?; 10.8 In a Nutshell; 10.9 See Also; 10.10 Get Thinking; Chapter 11: THE NEED FOR SPEED; 11.1 What Is Optimization?; 11.2 What Makes Code Suboptimal?; 11.3 Why Not Optimize?; 11.4 Why Optimize?; 11.5 The Nuts and Bolts; 11.6 Optimization Techniques; 11.7 Writing Efficient Code; 11.8 In a Nutshell; 11.9 See Also; 11.10 Get Thinking; Chapter 12: AN INSECURITY COMPLEX; 12.1 The Risks; 12.2 The Opposition; 12.3 Excuses, Excuses; 12.4 Feeling Vulnerable; 12.5 Protection Racket; 12.6 In a Nutshell; 12.7 See Also; 12.8 Get Thinking; THE SHAPE OF CODE; Chapter 13: GRAND DESIGNS; 13.1 Programming as Design; 13.2 What Do We Design?; 13.3 What's All the Fuss About?; 13.4 Good Software Design; 13.5 How to Design Code; 13.6 In a Nutshell; 13.7 See Also; 13.8 Get Thinking; Chapter 14: SOFTWARE ARCHITECTURE; 14.1 What Is Software Architecture?; 14.2 What Is Good Architecture?; 14.3 Architectural Styles; 14.4 In a Nutshell; 14.5 See Also; 14.6 Get Thinking; Chapter 15: SOFTWARE EVOLUTION OR SOFTWARE REVOLUTION?; 15.1 Software Rot; 15.2 The Warning Signs; 15.3 How Does Code Grow?; 15.4 Believe the Impossible; 15.5 What Can We Do About This?; 15.6 In a Nutshell; 15.7 See Also; 15.8 Get Thinking; A HERD OF PROGRAMMERS?; Chapter 16: CODE MONKEYS; 16.1 Monkey Business; 16.2 The Ideal Programmer; 16.3 So What?; 16.4 The Stupidest of Men; 16.5 In a Nutshell; 16.6 See Also; 16.7 Action Sheet; 16.8 Get Thinking; Chapter 17: TOGETHER WE STAND; 17.1 Our Teams-The Big Picture; 17.2 Team Organization; 17.3 Teamwork Tools; 17.4 Team Diseases; 17.5 Personal Skills and Characteristics for Good Teamwork; 17.6 Teamwork Principles; 17.7 The Team Life Cycle; 17.8 In a Nutshell; 17.9 See Also; 17.10 Action Sheet; 17.11 Get Thinking; Chapter 18: PRACTICING SAFE SOURCE; 18.1 Our Responsibility; 18.2 Source Control; 18.3 Configuration Management; 18.4 Backups; 18.5 Releasing Source Code; 18.6 Wherever I Lay My Source; 18.7 In a Nutshell; 18.8 See Also; 18.9 Get Thinking; PART OF THE PROCESS; Chapter 19: BEING SPECIFIC; 19.1 What Are They, Specifically?; 19.2 The Types of Specification; 19.3 What Should Specifications Contain?; 19.4 The Specification-Writing Process; 19.5 Why Don't We Write Specifications?; 19.6 In a Nutshell; 19.7 See Also; 19.8 Get Thinking; Chapter 20: A REVIEW TO A KILL; 20.1 What Is a Code Review?; 20.2 When Do You Review?; 20.3 Performing Code Reviews; 20.4 Review Your Attitudes; 20.5 Code Perfection; 20.6 Beyond the Code Review; 20.7 In a Nutshell; 20.8 See Also; 20.9 Checklist; 20.10 Get Thinking; Chapter 21: HOW LONG IS A PIECE OF STRING?; 21.1 A Stab in the Dark; 21.2 Why Is Estimation So Hard?; 21.3 Under Pressure; 21.4 Practical Ways to Estimate; 21.5 The Planning Game; 21.6 Keep Up!; 21.7 In a Nutshell; 21.8 See Also; 21.9 Get Thinking; VIEW FROM THE TOP; Chapter 22: RECIPE FOR A PROGRAM; 22.1 Programming Styles; 22.2 Recipes: The How and the What; 22.3 Development Processes; 22.4 Enough, Already!; 22.5 Pick a Process; 22.6 In a Nutshell; 22.7 See Also; 22.8 Get Thinking; Chapter 23: THE OUTER LIMITS; 23.1 Applications Programming; 23.2 Games Programming; 23.3 Systems Programming; 23.4 Embedded Programming; 23.5 Distributed Programming; 23.6 Web Application Programming; 23.7 Enterprise Programming; 23.8 Numerical Programming; 23.9 So What?; 23.10 In a Nutshell; 23.11 See Also; 23.12 Get Thinking; Chapter 24: WHERE NEXT?; 24.1 But What Now?; Answers and Discussion; Chapter 1: On the Defensive; Chapter 2: The Best Laid Plans; Chapter 3: What's in a Name?; Chapter 4: The Write Stuff; Chapter 5: A Passing Comment; Chapter 6: To Err Is Human; Chapter 7: The Programmer's Toolbox; Chapter 8: Testing Times; Chapter 9: Finding Fault; Chapter 10: The Code That Jack Built; Chapter 11: The Need for Speed; Chapter 12: An Insecurity Complex; Chapter 13: Grand Designs; Chapter 14: Software Architecture; Chapter 15: Software Evolution or Software Revolution?; Chapter 16: Code Monkeys; Chapter 17: Together We Stand; Chapter 18: Practicing Safe Source; Chapter 19: Being Specific; Chapter 20: A Review to a Kill; Chapter 21: How Long Is a Piece of String?; Chapter 22: Recipe for a Program; Chapter 23: The Outer Limits; BIBLIOGRAPHY; COLOPHON;