Classifying dependency-breaking techniques
Published by Manuel Rivero on 27/03/2024
In his book Working Effectively with Legacy Code, Michael Feathers describes 24 dependency-breaking techniques. They are listed in chapter 25.
We are using the following classification of dependency-breaking techniques:
We think that this classification may create meaningful chunks of information that will help us learn, understand and remember these dependency-breaking techniques better. These chunks give more cohesion to the material than the list.
We created this classification, after reading the descriptions of the techniques, and thinking about how we could teach them. We think that some techniques are more related to each other than to other techniques, but those relationships were not explicitly expressed in the structure of chapter 25 of the book. Moreover, some techniques are useful only for some languages.
This classification is part of a legacy code training that we are launching next month.
Would you classify the dependency-breaking techniques in a different way? Any feedback and suggestions about this classification would be more than welcome.
I hope this might be useful for you.
Acknowledgements
I’d like to thank Fran Reyes for preparing this legacy code training with me.
Finally, I’d also like to thank Vinur for the photo.