Refactoring and SOLID Design for C++ Training

This training course helps you build knowledge, understanding and skill in the engineering practices needed to build great C++ code. You learn how to build flexible and modular software with very few defects, software that can have a long useful life. We teach you how to prevent defects and how to keep code clean over years of evolving needs.

Among other things, you'll learn the difference between Debug-Later Programming (the most popular programming technique on the planet) and Test-Driven Development.

Course Length Options


  • Software Developers
  • Technical team leaders
  • Managers that want to know more about the technology they manage


  • C++ programming experience

Course Outline

  • Agile Design
    • Rules of Simple Design
    • SOLID Design Principles
    • DRY Principle
    • Mind Your Own Business
    • Architectural Vision
    • The Big Picture
    • Vertical Slices
    • From Specific to General
    • Evolution
    • Exercise
  • Breaking Dependencies Dynamically
    • Function Pointer Fake
    • Exercise
  • Evolving to a SOLID Design
    • Identifying Duplicate Conditional Logic
    • Refactoring to a better design
    • Exercise
  • Design Patterns
    • OS Independence
    • Exercise
  • Refactoring - Deeper Dive
  • Module Objective:

    • Critical to a Healthy Business
    • Critical Skills
    • Code Smells
    • Envisioning
    • Transforming
    • Exercises
  • Wrap up Discussion
  • Optional Workshop for your Product Begins

This course will get you and your team well on the way to applying TDD in your C++ development efforts.