Copyright
Brief Table of Contents
Table of Contents
Preface
Acknowledgments
About this Book
1. Getting started
Chapter 1. Understanding the challenges of legacy projects
1.1. Definition of a legacy project
1.1.1. Characteristics of legacy projects
1.1.2. Exceptions to the rule
1.2. Legacy code
1.2.1. Untested, untestable code
1.2.2. Inflexible code
1.2.3. Code encumbered by technical debt
1.3. Legacy infrastructure
1.3.1. Development environment
1.3.2. Outdated dependencies
1.3.3. Heterogeneous environments
1.4. Legacy culture
1.4.1. Fear of change
1.4.2. Knowledge silos
1.5. Summary
Chapter 2. Finding your starting point
2.1. Overcoming feelings of fear and frustration
2.1.1. Fear
2.1.2. Frustration
2.2. Gathering useful data about your software
2.2.1. Bugs and coding standard violations
2.2.2. Performance
2.2.3. Error counts
2.2.4. Timing common tasks
2.2.5. Commonly used files
2.2.6. Measure everything you can
2.3. Inspecting your codebase using FindBugs, PMD, and Checkstyle
2.3.1. Running FindBugs in your IDE
2.3.2. Handling false positives
2.3.3. PMD and Checkstyle
2.4. Continuous inspection using Jenkins
2.4.1. Continuous integration and continuous inspection
2.4.2. Installing and setting up Jenkins
2.4.3. Using Jenkins to build and inspect code
2.4.5. SonarQube