Give Your Old Code Some New Love


Details
What better time to show your old code some new C++ love than Valentine's Day?
With the C++ standard moving along at a rapid pace from C++11, C++14 and now C++17, new idioms and best practices have been coming into the language fairly rapidly. Even before C++11, there existed plenty of code that didn't exhibit best practices or follow commonly accepted C++ idioms. Much of this code comes from C-style programming or may itself literally be C code that was changed to C++.
The general name for this sort of situation in a code base is called "technical debt". Given this common state of affairs, what can we do about it?
In this meetup, Richard Thomson will guide us through a discussion about various techniques you can use to identify, evaluate and eliminate technical debt in your code base. While every change could be made manually, there are automated tools that can help you identify and eliminate certain types of technical debt. Your own experiences and ideas in dealing with technical debt are also welcome ingredients in this discussion!
To guide the discussion, we'll use Iterated Dynamics as a case study. Iterated Dynamics is a fork of the 30 year old MS-DOS fractal generator C program FRACTINT. Iterated Dynamics can be found on github:
https://github.com/LegalizeAdulthood/iterated-dynamics
Some of the topics we'll discuss include:
- prioritizing your debt; not every loan is at the same interest rate
- how to work carefully to ensure always forward progress
- consistent formatting of source files
- modernizing your build with CMake
- continuous integration for open source projects using travis and AppVeyor
- clang-tidy to automatically modernize code constructs
- static analysis tools to find old bugs (cppcheck, SonarQube, scan-build)
- modularizing the "global include"
- Convert C to C++ refactoring
- Split Module refactoring
- Guard Macro Body refactoring
- Replace Integer With Boolean refactoring
Food will be provided, so please RSVP so we have a proper head count.

Give Your Old Code Some New Love