Working Effectively with Legacy Code – Michael Feathers

In this book, Michael Feathers offers start-to-finish strategies for working more effectively with large, untested legacy code bases. This book draws on material Michael created for his own renowned Object Mentor seminars: techniques Michael has used in mentoring to help hundreds of developers, technical managers, and testers bring their legacy systems under control.This book also includes a catalog of twenty-four dependency-breaking techniques that help you work with program elements in isolation and make safer changes.

Reduced Structural Complexity With Examples

Code quality is -should be- one of the main concerns of a software developer. While designing the internal structure, it is important to avoid increasing the structural complexity -cyclomatic complexity, cognitive complexity, halstead volume, maintainability index and such…- which exposes to reliability, maintainability and testability problems. Factory pattern design seemed like a good place to start explaining how to work on complexity problems. The reason, Gürel and I picked factory pattern, is because its most common usage -no offense, this is just one way of doing it :)- simply turns…