Code Craft: The Practice of Writing Excellent Code

Code Craft: The Practice of Writing Excellent Code

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

Code Craft: The Practice of Writing Excellent Code

by Pete Goodliffe

eBook

$26.99 

Available on Compatible NOOK Devices and the free NOOK Apps.
WANT A NOOK?  Explore Now

Related collections and offers


Overview

You know how to write code that works, but what about code that's well written and easy to understand? And robust and bug-free? If other programmers looked at your handiwork, would they be able to figure out the code's logic and purpose? Exceptional programmers have more than just technical know-how; they adopt the right approach and attitude to development.

Code Craft will help take your programming beyond writing correct code to writing great code, thus turning you into a true programming professional or enhancing your existing professional skills.

With language-agnostic advice that's relevant to all developers, Code Craft covers code-writing concerns such as presentation style, variable naming, error handling, and security. And it tackles broader, real-world programming issues like effective teamwork, development processes, and documentation. Each chapter ends with a Q&A section that reviews key concepts to get you thinking like an expert, making it an especially great reference for newer programmers who want to work professionally and efficiently as part of a team.

This survival guide for the software factory will show you how to:
–Write good code when the world's not helping you
–Avoid disasters and distractions in the workplace
–Assess your abilities accurately and determine ways to improve
–Adopt productive attitudes and follow best practices

There's little more valuable than the advice of a true, programming professional. You'll find Code Craft to be clear, practical, and entertaining throughout, and a great way to take your code (and your career) to the next level.

Product Details

ISBN-13: 9781593271336
Publisher: No Starch Press
Publication date: 12/06/2006
Sold by: Penguin Random House Publisher Services
Format: eBook
Pages: 624
File size: 5 MB

About the Author

Pete Goodliffe is an expert software developer who never stays at the same place in the software food chain; he's worked in numerous languages on diverse projects. He also has extensive experience in teaching and mentoring programmers, and writes the regular "Professionalism in Programming" column for ACCU's C Vu magazine (www.accu.org). Pete enjoys writing excellent, bug-free code, so he can spend more time having fun with his kids.

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;

From the B&N Reads Blog

Customer Reviews