contents

 

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