Code Complete | Steve Mcconnell
Contents
Page 1
FRONT MATTER Preface [Preface] Who Should Read This Book? Where Else Can You Find This Information? Key Benefits of This Handbook Why This Handbook Was Written Book Website Author Note Notes about the Second Edition [new] Acknowledgments [n/a] LAYING THE FOUNDATION Welcome to Software Construction [1] 1.1 What Is Software Construction? 1.2 Why Is SoftwareConstruction Important? 1.3 How to Read This Book Metaphors for a Richer Understanding of Software Development [2] 2.1 The Importance of Metaphors 2.2 How to Use Software Metaphors 2.3 Common Software Metaphors Measure Twice, Cut Once: Upstream Prerequisites [3] 3.1 Importance of Prerequisites 3.2 Determine the Kind of Software You’re Working On 3.3 Problem-Definition Prerequisite 3.4 RequirementsPrerequisite 3.5 Architecture Prerequisite 3.6 Amount of Time to Spend on Upstream Prerequisites Key Construction Decisions [3+new material] 4.1 Choice of Programming Language 4.2 Programming Conventions 4.3 Your Location on the Technology Wave 4.4 Selection of Major Construction Practices CREATING HIGH QUALITY CODE Design in Construction [mostly new material, some from 7] 5.1 Design Challenges 5.2Key Design Concepts 5.3 Design Building Blocks: Heuristics 5.4 Design Practices
© Steven C. McConnell. All Rights Reserved. H:\BOOKS\codec2ed\Toc-Detailed.doc
1/12/2004 3:43 PM
Code Complete
Contents
Page 2
5.5 Comments on Popular Methodologies Working Classes [mostly new material, a little from 6] 6.1 Class Foundations: Abstract Data Types (ADTs) 6.2 Good Class Interfaces 6.3Design and Implementation Issues 6.4 Reasons to Create a Class 6.5 Language-Specific Issues 6.6 Beyond Classes: Packages High-Quality Routines [5] 7.1 Valid Reasons to Create a Routine 7.2 Design at the Routine Level 7.3 Good Routine Names 7.4 How Long Can a Routine Be? 7.5 How to Use Routine Parameters 7.6 Special Considerations in the Use of Functions 7.7 Macro Routines and Inline RoutinesDefensive Programming [5.6 + new material] 8.1 Protecting Your Program From Invalid Inputs 8.2 Assertions 8.3 Error Handling Techniques 8.4 Exceptions 8.5 Barricade Your Program to Contain the Damage Caused by Errors 8.6 Debugging Aids 8.7 Determining How Much Defensive Programming to Leave in Production Code 8.8 Being Defensive About Defensive Programming The Pseudocode Programming Process [4+newmaterial] 9.1 Summary of Steps in Building Classes and Routines 9.2 Pseudocode for Pros 9.3 Constructing Routines Using the PPP 9.4 Alternatives to the PPP VARIABLES General Issues in Using Variables [10] 10.1 Data Literacy 10.2 Making Variable Declarations Easy 10.3 Guidelines for Initializing Variables 10.4 Scope 10.5 Persistence 10.6 Binding Time 10.7 Relationship Between Data Types and ControlStructures 10.8 Using Each Variable for Exactly One Purpose
© Steven C. McConnell. All Rights Reserved. H:\BOOKS\codec2ed\Toc-Detailed.doc
1/12/2004 3:43 PM
Code Complete
Contents
Page 3
The Power of Variable Names [9] 11.1 Considerations in Choosing Good Names 11.2 Naming Specific Types of Data 11.3 The Power of Naming Conventions 11.4 Informal Naming Conventions 11.5 StandardizedPrefixes 11.6 Creating Short Names That Are Readable 11.7 Kinds of Names to Avoid Fundamental Data Types [11] 12.1 Numbers in General 12.2 Integers 12.3 Floating-Point Numbers 12.4 Characters and Strings 12.5 Boolean Variables 12.6 Enumerated Types 12.7 Named Constants 12.8 Arrays 12.9 Creating Your Own Types Unusual Data Types [11.9, 10.6] 13.1 Structures 13.2 Pointers 13.3 Global DataSTATEMENTS Organizing Straight-Line Code [13] 14.1 Statements That Must Be in a Specific Order 14.2 Statements Whose Order Doesn’t Matter Using Conditionals [14] 15.1 if Statements 15.2 case Statements Controlling Loops [15] 16.1 Selecting the Kind of Loop 16.2 Controlling the Loop 16.3 Creating Loops Easily—from the Inside Out 16.4 Correspondence Between Loops and Arrays Unusual Control Structures [16]...
Regístrate para leer el documento completo.