Automated Code Remediation at Scale, 2nd Edition
by Pat Johnson, Olga Kundzich, Jonathan Schneider
Chapter 3. Technology Behind the Scenes of Auto-Remediation at Scale
To manage continuous, automated code remediation at scale, you need technology that crosses boundaries of teams and repositories. This technology must inspire confidence that code changes via automation are comprehensive and correct. It also must evolve with the software ecosystems it supports.
This chapter dives into the following technology concepts in more detail:
-
Rules-based automated code refactoring engine
-
Lossless Semantic Tree, a new, structured representation of a codebase
-
Recipes, which are programs for performing code search and transformation
-
Preservation of code style to avoid rejection when auto-remediating
-
Coordination of multirepository code analysis and change
-
Data tables output from code examination for analysis and action
The examples we will use throughout this chapter are given as Java refactorings, but the same technology and ideas apply equally to other languages.
A Refactoring Engine Drives Auto Remediation
Auto-remediation and refactoring are closely aligned concepts. Refactoring is the act of changing the internal structure of the software to make it more efficient and maintainable, which includes making it easier to understand and remediate—all without changing the software’s observable behavior. It’s how we’ve traditionally addressed technical debt, automated within the IDE and now aided by AI assistants, working repository by repository.
For managing organization-wide ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access