Impact on maintainability and refactoring for higher-level design features
summary
Claim: more expressive C++ features raise long‑term refactoring cost. Concrete examples: Google limits ~2,000 files per commit so it uses multi-step refactoring with small atomic edits (add overloads, change callers, add aliases). Renaming types works by add an alias then fix ADL and forward‑declarations; ~10–20% of unqualified calls rely on ADL dependency. Tools: CI, AST refactor tools, generated‑code sweeps, and auto‑rollback; Concepts and function renames are notably expensive or currently unsupported.
AI-written summary · about
chapters (16)
- 0:00Introduction
- 2:28Unstructured to structured code
- 5:37Refactoring and challenges
- 16:27Multi-step refactoring
- 23:16Renaming a type
- 36:05Forward declarations and ADL
- 43:14Semantic refactoring
- 47:31When not to multi-step
- 51:14Refactoring functions
- 59:20Changing types
- 1:05:06Class and interface changes
- 1:08:38Refactoring templates
- 1:09:43Changing concepts
- 1:17:26Recap and trade-offs
- 1:20:12Maintainability
- 1:31:14Q&A
related talks
01h 01mMaintainability and Refactoring Impact of Higher-Level Design Features
50mRefactoring Is Not Just Clickbait
01h 01mHow to Refactor Millions of Line of Code Without Alienating your Colleagues
01h 31m“C++ as a "Live at Head" Language”
50mGuide Refactorings With Behavioral Code Analysis
59mMechanical C++ Refactoring in the Present and in the Future
19mLanguage Support for Refactorability Decay Prevention
01h 31mClean(er) Code for Large Scale Legacy Applications
