| Major Illnesses | p. 1 |
| Premature Optimization | |
| Description Symptoms | |
| General Symptoms | |
| Prevention | |
| The Simplest Technique: Do Not Optimize K.I.S.S. (Keep It Simple, Stupid) | |
| High-Level Languages Encapsulation and Abstraction | |
| Strategy Pattern Editors: Tools of the Trade Cure When to Refactor Profile, Profile, Profile | |
| Importance of Testing | |
| Special Case: Libraries Related Illnesses | |
| First Aid Kit | |
| CAP Epidemic Description | |
| The Bug Came Back Search and Replace | |
| What Does That Mean: CAP Symptoms in Documentation Obscure Bug Hunt Too Many Directions | |
| Information Duplication Prevention Know Your Code Know Your Libraries | |
| High-Level Languages Automation Avoiding Asset | |
| Duplication Generative Programming Cure When to Refactor | |
| Refactoring Tools | |
| Beyond Refactoring Tools | |
| Importance of Testing Redux Related Illnesses | |
| First Aid Kit | |
| NIH Syndrome Control | |
| Fanatics by Nature What Are We Afraid Of? | |
| What Should We Be Afraid Of? | |
| Prevention What Are Middleware and Open Source? | |
| Technical Support Research Flavors: Types of Reusable Code | |
| Expanding the Selection with .NET | |
| Strategy Pattern Revisited Adapters, Bridges, and Fatades | |
| Cure Sacred Code When to Refactor | |
| One Step at a Time Conformance Workarounds | |
| Did We Mention the Importance of Testing? | |
| Related Illnesses | |
| First Aid Kit | |
| Minor Illnesses | |
| Complexification Description Symptoms | |
| Poor Readability Invisible Functionality Return of the Nifty Algorithm | |
| Emergent Bugs Prevention K.I.S.S. | |
| Know the Options Start Small | |
| The Right Language | |
| Try Explaining That Refactoring for Prevention Cure When to Refactor | |
| Simplify the Algorithm | |
| Simplify the Code | |
| Related Illnesses | |
| First Aid Kit | |
| Over Simplification Description Symptoms So Simple It Does Not Do Anything | |
| Shifting Complexity Do Not Touch Prevention Completeness | |
| Realistic Design Winds of Change Cure | p. 182 |
| More Sacred Code | p. 182 |
| When to Refactor | p. 183 |
| Up and Down | p. 183 |
| Libraries for Reuse | p. 185 |
| Related Illnesses | p. 186 |
| Contents First Aid Kit | p. 186 |
| Summary | p. 187 |
| Docuphobia | p. 189 |
| Description | p. 189 |
| Symptoms | p. 189 |
| What, How, and Why? | p. 189 |
| Not That Way | p. 193 |
| Prevention | p. 195 |
| Too Little vs. Too Much | p. 195 |
| Document in the Code | p. 195 |
| Coding Standards | p. 202 |
| Avoiding Duplication | p. 203 |
| Automation | p. 205 |
| Maintenance | p. 207 |
| Cure | p. 207 |
| Analyze | p. 207 |
| Query | p. 208 |
| Refactoring | p. 208 |
| Related Illnesses | p. 209 |
| First Aid Kit | p. 209 |
| Summary | p. 212 |
| i | p. 215 |
| Description | p. 215 |
| Symptoms | p. 215 |
| Comment Required? | p. 216 |
| Dangers of Context | p. 217 |
| Prevention | p. 218 |
| Editors: Tools of the Trade | p. 218 |
| Naming Conventions | p. 220 |
| Contents | p. xi |
| Everyday Language | p. 221 |
| Cure | p. 226 |
| Read the Code | p. 226 |
| Comments to Code | p. 226 |
| Related Illnesses | p. 230 |
| First Aid Kit | p. 231 |
| Summary | p. 231 |
| Hardcode | p. 233 |
| Description | p. 233 |
| Symptoms | p. 233 |
| Strings and Numbers | p. 233 |
| More CAP | p. 234 |
| Localization | p. 235 |
| Prevention | p. 237 |
| Standard Data Source | p. 237 |
| XML | p. 238 |
| Asset Management | p. 243 |
| Cure | p. 244 |
| When to Refactor | p. 244 |
| Context Highlighting | p. 245 |
| Collection | p. 245 |
| Run Time vs. Compile Time | p. 248 |
| Related Illnesses | p. 248 |
| First Aid Kit | p. 249 |
| Summary | p. 249 |
| Brittle Bones | p. 251 |
| Description | p. 251 |
| Symptoms | p. 252 |
| Too Minimal | p. 252 |
| Contents Too Complete | p. 256 |
| Lack of Consistency | p. 258 |
| Spiraling | p. 260 |
| Prevention | p. 260 |
| Design | p. 261 |
| Balance | p. 263 |
| Cure | p. 264 |
| Stop | p. 264 |
| Learn | p. 264 |
| Refactor | p. 265 |
| Related Illnesses | p. 265 |
| First Aid Kit | p. 266 |
| Summary | p. 266 |
| Requirement Deficiency | p. 269 |
| Description | p. 269 |
| Symptoms | p. 269 |
| Vagueness | p. 269 |
| Too Many Options | p. 270 |
| History | p. 271 |
| Nagging Feeling | p. 271 |
| Prevention | p. 272 |
| Communication | p. 272 |
| Paper Trail | p. 274 |
| Checklist | p. 275 |
| Internal Technical Requirements | p. 277 |
| Flexibility | p. 277 |
| Cure | p. 278 |
| Get Feedback | p. 278 |
| Incorporate | p. 279 |
| Bargain | p. 279 |
| Contents | p. xiii |
| Refactor | p. 279 |
| Related Illnesses | p. 280 |
| First Aid Kit | p. 280 |
| Summary | p. 281 |
| Myopia | p. 283 |
| Description | p. 283 |
| Symptoms | p. 283 |
| Shortcuts | p. 283 |
| Prevention | p. 284 |
| Think Ahead | p. 284 |
| Statistics | p. 284 |
| Education | p. 285 |
| Cure | p. 286 |
| Refactor | p. 287 |
| Reboot | p. 287 |
| Avoid Crunching | p. 288 |
| Related Illnesses | p. 288 |
| First Aid Kit | p. 289 |
| Summary | p. 290 |
| Conclusion | p. 291 |
| Common Techniques | p. 291 |
| Toward the Programmer's DSM-IV | p. 299 |
| Community | p. 300 |
| Teamwork | p. 303 |
| Made for People | p. 303 |
| Made by People | p. 304 |
| Point of View | p. 306 |
| Contents | p. xiv |
| Appendix | |
| Table of Contents provided by Publisher. All Rights Reserved. |