front matter
foreword
preface
acknowledgments
about the author
about the cover illustration
1 Refactoring refactoring
1.1 What is refactoring?
1.2 Skills: What to refactor?
An example code smell
An example rule
1.3 Culture: When to refactor?
Refactoring in a legacy system
When should you not refactor?
1.4 Tools: How to refactor (safely)
1.5 Tools you need to get started
Programming language: TypeScript
Editor: Visual Studio Code
Version control: Git
1.6 Overarching example: A 2D puzzle game
Practice makes perfect: A second codebase
1.7 A note on real-world software
2 Looking under the hood of refactoring
2.1 Improving readability and maintainability
Making code better
Maintaining code . . . without changing what it does
2.2 Gaining speed, flexibility, and stability