Have something to share about engineering practices, architecture or DevOps?
Become a speaker now

Training “Working With Legacy Code in C#”

Training “Working With Legacy Code in C#”

Every programmer has to face legacy code day after day. It might be ugly, it might look scary, it can make a grown man cry. Some will throw it away and try rewriting everything from scratch. Most of them will fail.

Learning how to deal with legacy code is a much better idea. It is not so scary when you take it in very small bites, introduce small changes, add unit tests. When code is refactored and unit tests are in place, you can add new code to systems and make existing code more maintainable. However, refactoring code without having tests in place can be hazardous.

This workshop presents a collection of dependency breaking and test writing techniques that can be used to get existing code safely under test for refactoring. These techniques can be used in conjunction with Test Driven Development to breathe new life into large existing code bases.

This workshop is structured as a set of lectures, discussions, and hands-on exercises.

Course Prerequisites:

  • Understanding of OO concepts
  • Intermediate C# knowledge
  • Basic understanding of TDD and Unit Testing

By the end of this course, you will:

  • Understand how to break dependencies in legacy code
  • Learn how to write unit tests for legacy code
  • Learn techniques for breaking external dependencies
  • Learn techniques for breaking internal dependencies
  • Understand when to employ each of the techniques
  • Learn strategies for code refactoring
  • Understand how to write effective tests for legacy code

Workshop Outline:

  • TDD Kata to warm up
  • Introduction to Tools, Techniques and Patterns (TDD, testable architecture, dependency injection)
  • Breaking Dependencies (theory, practice, legacy code kata)
  • Refactoring Toward Understandability (theory and practice)

What to bring?

  • Laptop with Visual Studio


Dmytro Mindra


8 hours (1 day).


1800 hryvnas per person (lunch included).