preface
acknowledgments
about this book
about the author
about the cover illustration
Part 1 In theory
1 Code quality
1.1 How code becomes software
1.2 The goals of code quality
Code should work
Code should keep working
Code should be adaptable to changing requirements
Code should not reinvent the wheel
1.3 The pillars of code quality
Make code readable
Avoid surprises
Make code hard to misuse
Make code modular
Make code reusable and generalizable
Make code testable and test it properly
1.4 Does writing high-quality code slow us down?
2 Layers of abstraction
2.1 Nulls and the pseudocode convention in this book
2.2 Why create layers of abstraction?
Layers of abstraction and the pillars of code quality
2.3 Layers of code
APIs and implementation details
Functions
Classes
Interfaces