So, you inherited a large code base...
summary
Describes converting a huge legacy C++ codebase into modern shape by automation, measurement, and staged migrations rather than one big rewrite. Demonstrates clang-based refactoring using the Python clang bindings and a ~500 line script driven from a CMake compilation database, promotes low-risk global changes like clang-format, and insists on an infrastructure team, CI, and tests that wrap old interfaces for safe rewrites. Teaches mnemonic methods to reason about tangled interactions and advocates incremental migration paths with instrumentation and proven semantic equivalence.
AI-written summary · about
chapters (22)
- 0:00Intro
- 1:19New Assignment
- 1:58Characteristics of Large Projects
- 5:18Dangerous Assumptions
- 7:50Distractions
- 11:04Follow through
- 11:56Principle pitfalls for large projects
- 14:35Day 1.5: clang-format
- 15:11Automation of changes
- 18:32General Infrastructure automation Things to automate
- 20:59Reasoning the codebase
- 22:03Levelization Example
- 26:35Mnemonic methods
- 27:09Challenge Spectrum
- 31:30Migration path
- 34:32Replacing a plece
- 36:49Consistent code
- 37:13Organized and well-documented code
- 37:35Tested code
- 40:31Same characteristics
- 41:00The same pitfalls apply
- 42:12Key questions for the C++ Committee
related talks
47mAdventures with C++ Legacy Codebases: Tales of Incremental Improvement
01h 31mClean(er) Code for Large Scale Legacy Applications
44mAdventures In Updating A Legacy Codebase
24mRefactoring Legacy Codebases with LibTooling
56mHow to Refactor Millions of Line of Code Without Alienating Colleagues
01h 06mRewriting Legacy Code
01h 29mAlchemical Code Rejuvenation
49mPets, Cattle and Automatic Clang Operations with C++ Code
