Session

Refactoring-Enabling Refactorings

(This is a hands-on lab with limited capacity)

Most legacy systems have a strong technical resistance to refactoring. This resistance prevents many legacy systems from being touched. There can be many reasons, including developers' concern about the amount of effort required, or their fear of unexpected consequences. For a large refactoring to be successful, it is essential to overcome this resistance.

This resistance has a variety of aspects. One of them is the large number of changes that must be adapted for refactoring to be applied. Developers may need to spend a lot of time and effort because of this and Furthermore, they may be forced to rely on large rewrites instead of incremental or iterative development.

Unexpected consequences are another aspect. Most Legacy systems don't have a good test suit, if any at all. Developers are thereby exposed to unintended consequences without knowing about them in a concrete manner. Since the code is not testable, they cannot write tests to apply refactoring. It's actually a vicious cycle, since testing is essential to refactoring and placing tests requires you to refactor the code.

There are actually ways to overcome this resistance or at least mitigate its risks. Our goal in this workshop is to explore a set of techniques, guidelines, and approaches to apply the most basic and essential refactoring needed to make the code testable as well as isolate different parts to reduce the impact of future refactoring. This will reduce the resistance of the system to refactoring, both in terms of the size of changes and the fragility of the refactoring.

Hadi Ahmadi

Independent Software Architect & Consultant, Co-Founder of DDD Iran Community

Tehran, Iran

Actions

Please note that Sessionize is not responsible for the accuracy or validity of the data provided by speakers. If you suspect this profile to be fake or spam, please let us know.

Jump to top