Pragmatic Programmer, The: From Journeyman to Master
Foreword
Preface
Who Should Read This Book?
What Makes a Pragmatic Programmer?
Individual Pragmatists, Large Teams
It's a Continuous Process
How the Book Is Organized
What's in a Name ?
1. A Pragmatic Philosophy
The Cat Ate My Source Code
Software Entropy
Stone Soup and Boiled Frogs
Good-Enough Software
Your Knowledge Portfolio
Communicate!
Summary
2. A Pragmatic Approach
The Evils of Duplication
Orthogonality
Reversibility
Tracer Bullets
Prototypes and Post-it Notes
Domain Languages
Estimating
3. The Basic Tools
The Power of Plain Text
Shell Games
Power Editing
Source Code Control
But My Team Isn't Using Source Code Control
Source Code Control Products
Debugging
Text Manipulation
Exercises
Code Generators
4. Pragmatic Paranoia
Design by Contract
Dead Programs Tell No Lies
Assertive Programming
When to Use Exceptions
How to Balance Resources
Objects and Exceptions
Balancing and Exceptions
When You Can't Balance Resources
Checking the Balance
Exercises
5. Bend or Break
Decoupling and the Law of Demeter
Metaprogramming
Temporal Coupling
It's Just a View
Blackboards
6. While You Are Coding
Programming by Coincidence
Algorithm Speed
Refactoring
Code That's Easy to Test
Evil Wizards
7. Before the Project
The Requirements Pit
Solving Impossible Puzzles
Not Until You're Ready
The Specification Trap
Circles and Arrows
8. Pragmatic Projects
Pragmatic Teams
Ubiquitous Automation
Ruthless Testing
It's All Writing
Great Expectations
Pride and Prejudice
A. Resources
Professional Societies
Building a Library
Internet Resources
Bibliography
B. Answers to Exercises