Back To Schedule

Newer Isn’t Always Better

Investigating Legacy Design Trends and Their Modern Replacements

14:30 - 16:00 Monday 29th April 2024 MT Lauder Seminar Room
Beginner
Intermediate
Advanced

All code is legacy code, or so they say. Software engineers scoff at the idea of new code instantly becoming legacy code, however software is a time capsule holding the design trends of the time the code was written. As new code is written, new design trends are used and potentially overused, just like the legacy patterns. What if these new design trends have more in common with the original design trends than we initially thought. One example we will investigate is object oriented design through polymorphism and how it has been replaced in many cases with template metaprogramming. There are a variety of template metaprogramming strategies that achieve the object oriented design principles, however when overused you can encounter as many templates as there would be virtual functions in object oriented programming. Have we discovered that balance is the solution or are we still overusing the “fancy” new thing? In this talk, we will investigate various legacy design trends including further examining object oriented design, the factory pattern, as well as other legacy anti-patterns to reveal the updated trends. We will address each legacy anti-pattern and their corresponding modern update to evaluate whether newer is better or if we have recreated the same legacy problem.

View Slides

Katherine Rocha

Embedded Systems Software EngineerAtomos Nuclear and Space

Katherine Rocha is an embedded software engineer at Atomos Space. She’s passionate about embedded systems, real-time systems, legacy code, and understanding as much as possible. She has been an active member of the C++ community for her entire career, starting with lightning talks at CppCon 2022 and C++Now 2023 and a talk about code genealogy at CppCon 2023. She’s figuring it out one warning, error, and question at a time.