Test Driven Development and Refactoring are powerful tools. With them 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 class 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 class is structured as a set of lectures, discussions, and hands-on exercises.
Who should attend
- Please bring your own laptop.
What will you learn
By the end of this course, you will:
- Understand what legacy code is
- Learn a variety of techniques for breaking dependencies
- Understand when to employ each of the techniques
- Learn how to identify change points
- Understand how to write effective tests for legacy code
- Learn how to avoid Technical Debt
Here is a brief course outline for the course:
- Approaching Legacy Code
- Breaking Dependencies – Sensing and Separation
- Characterization Testing
- Refactoring Toward Understandability
- Strategies for Getting Large Methods under Test
- Planning Large-Scale Refactoring and Technical Debt Reduction
The format of the course is lecture, exercises and discussion.
About the instructor
Michael Feathers over the years, has spent a significant amount of time helping teams gain control over large code bases in C, C++, C#, Java, and Ruby. He was involved in the early Agile movement and one of his passions is helping organizations recognize the impact of their internal organization and communication on the long term viability of their software products – putting interactions in place to prevent the accumulation of technical debt and lost business opportunities.
Currently, he is helping teams and pursuing research in business / development communication, preventing errors through design practice and array-functional programming languages. His goal is to make software development more effective and integrated with business concerns.
He is also the author of the book ‘Working Effectively with Legacy Code’
Specialties: Software Development Practices, TDD, Refactoring, Legacy Code Revitalization, Team Dynamics
Next 1-day course has been scheduled for 19 September 2018 09.30am – 05.30pm.
The course is taking place in Agile Actors #learning premises, 62A Ethnikis Antistasis, Chalandri, Greece