Skip to content

Case Study: Resurrecting/Modernizing Old Code

Photo of Richard Thomson
Hosted By
Richard T.
Case Study: Resurrecting/Modernizing Old Code

Details

Do you have old code laying around that you need to change? Maybe you need to fix a bug or maybe you need to add a feature.

Changing old code can be dangerous work because it may have been created to "older standards" and with "older idioms" and it may lack automated tests. In a large C++ code base with a significant history, it is not uncommon for older parts of the system to have been written in C instead of C++.

This month, Richard Thomson will guide us through a case study in resurrecting, rejuvenating, and modernizing old code. We'll be looking at an implementation of some code that writes the Computer Graphics Metafile file format -- a file format for storing 2D graphic primitives and their associated rendering attributes.

The code is successively transformed from ~20 year old C code into a C++ implementation exposed as an abstract interface to clients. Along the way, we'll learn some refactoring tricks with ReSharper for C++ to make our lives easier and we'll get this legacy code covered with unit tests. Our tests will find some bugs hidden in the code for all these years.

Code: https://github.com/LegalizeAdulthood/cgm

This will be an online presentation, so drinks and snacks are on you!

Past presentations can be found on our YouTube channel:
https://www.youtube.com/channel/UC56D6OIs_IAy24ubjC2_hmQ

Photo of Utah C++ Programmers group
Utah C++ Programmers
See more events