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.

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
    • Critical to a Healthy Business
    • Critical Skills
    • Code Smells
    • Envisioning
    • Transforming
    • Exercises
  • Wrap up Discussion
  • Optional Workshop in your Code Begins

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