As a programmer, you'd love to only work on green-field projects. However, you are most likely working on a legacy project right now, or will be at some point in the future. In this course, Domain-Driven Design: Working with Legacy Projects, you'll develop skills that will help you manage these legacy projects to deliver new functionality and keep the stakeholders happy. First, you'll learn how to make your way through the legacy code base by refactoring it one step at a time. Next, you'll explore how to handle rewrites, when to do that, and when it is better to keep the existing legacy code base instead. Finally, you'll discover techniques such as building an Anticorruption Layer, the Strangler pattern, and Branch by Abstraction pattern to deal with these code bases. By the end of this course, you'll have a solid understanding of the theory and practice of improving the functionality and scalability of legacy projects.
Course Overview Hi, everyone. My name is Vladimir Khorikov and welcome to my course, Domain-Driven Design: Working with Legacy Projects. I am a domain-driven design evangelist and very excited to share this course with you. We programmers all want to work on green field projects; you're most likely working on a legacy project right now or will be at some point in the future; there is no way around it. Each green field project becomes someone else's legacy project someday, therefore it's critical to develop skills that will help you be productive in this area. In this course you will learn how to approach legacy code bases, how to handle rewrites, when to do that, and when it is better to keep the existing legacy code base instead. Some of the major topics that we will cover include using the anticorruption layer pattern, how to create a clean and maintainable domain model in the environment with an existing legacy code base, how to evolve your domain model using synchronizing anticorruption layer, and guidelines to consider before conducting a refactoring or a rewrite. By the end of this course, you will know how to be productive with a legacy code base even if it's a complete mess. Before beginning this course you should be familiar with the C# programming language. I hope you will join me on this journey to learn about domain-driven design and working with legacy projects here at Pluralsight.