Synopsis: Get more out of your legacy systems: more performance, functionality, reliability, and manageability Understanding the mechanics of software change: adding features, fixing bugs, improving design, optimizing performance Getting legacy code into a test harness Writing tests that protect you against introducing new problems Techniques that can be used with any language or platform—with examples in Java, C++, C, and C# Accurately identifying where code changes need to be made Coping with legacy systems that aren't object-oriented Handling applications that don't seem to have any structure Is your code easy to change? Can you get nearly instantaneous feedback when you do change it? Do you understand it? If the answer to any of these questions is no, you have legacy code, and it is draining time and money away from your development efforts. 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 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. The topics covered include 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. .
Donec dictum, ante nec volutpat hendrerit, magna elit sodales risus, ac consequat lorem magna quis nisi. Nullam blandit a tellus nec ullamcorper. Donec vel facilisis tellus, non egestas sapien. Maecenas lacinia augue eget orci feugiat facilisis. Proin erat urna, convallis eget faucibus vitae, auctor at erat. Nullam auctor ex tortor, eget mollis enim viverra sed. Mauris eget leo non tortor dignissim mattis a vel sem. Maecenas mauris lectus, convallis nec efficitur eu, iaculis at nunc. Nullam ut justo ac nibh condimentum feugiat. Nunc vehicula, ex quis porttitor facilisis, neque odio dignissim ipsum, eu posuere felis arcu eu ante. Nullam euismod ligula ut tortor ultrices, eu consectetur nisi pulvinar. Etiam non blandit tortor. Curabitur mollis vitae leo eu pretium. Maecenas at libero magna. Aliquam tincidunt sodales cursus.
Integer dictum risus eu leo rhoncus posuere. Phasellus vehicula dui nec sollicitudin lacinia. Pellentesque in ipsum vitae neque mattis maximus ut sed velit. Pellentesque velit urna, pharetra eget nibh in, fermentum congue libero. In ex velit, tincidunt eu aliquam ac, pellentesque eget nisi. Praesent est arcu, tempor fringilla tempor in, auctor vitae libero. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vivamus justo ipsum, feugiat id viverra a, blandit eget dui. Proin vestibulum lorem eget augue pulvinar laoreet. Integer at hendrerit odio. Maecenas dapibus nunc sit amet luctus finibus. Vivamus pharetra augue vitae ex consectetur fringilla. Curabitur commodo ullamcorper odio, vitae ornare sem iaculis id.