How Hard Could It Be? Lessons Learned from Replacing
Before we could begin migrating
int64_t, we first had to create a replacement for
printf, complete with constexpr format string validation. Scale brings complexities most never anticipate, and the largest refactoring of Google’s codebase provides an amazing roadmap for those unexpected pain points. We’ll touch on many of the complicating factors in this multi-year effort, including overload sets, code generators, ODR-violations, printf, RTTI, and performance regressions. We’ll discuss the tools we used to address each of these, and how they can be leveraged to ease refactorings in codebases of any size.
Andy Soffer is a lapsed mathematician turned software engineer. He has been working at Google for for five years on networking, speech recognition infrastructure, and most recently core libraries and refactoring tools. In his free time, he enjoys running, and playing board games.