Working Effectively with Legacy CodePrentice Hall Professional Technical Reference, 2004 - 434 Seiten Índice: Preface.Introduction.I. THE MECHANICS OF CHANGE. 1. Changing Software. 2. Working with Feedback. 3. Sensing and Separation. 4. The Seam Model. 5. Tools.II. CHANGING SOFTWARE. 6. I Don't Have Much Time and I Have To Change It. 7. It Takes Forever To Make a Change. 8. How Do I Add a Feature? 9. I Can't Get This Class into a Test Harness.10. I Can't Run This Method into a Test Harness.11. I Need to Make a Change.What Methods Should I Test?12. I Need to Make Many Changes In One Area Do I Have To Break. 13. I Need To Make a Change but I Don't Know What Tests To Write.14. Dependencies on Libraries Are Killing Me.15. My Application Is All API Calls.16. I Don't Understand the Code Well Enough To Change It.17. My Application Has No Structure.18. My Test Code Is in the Way.19. My Project Is Not Object-Oriented.How Do I Make Safe Changes?20. This Class Is Too Big and I Don't Want It to Get Any Bigger.21. I'm Changing The Same Code All Over the Place.22. I Need To Change a Monster Method and I Can't Write Tests for It.23. How Do I Know That I'm Not Breaking Anything?24. We Feel Overwhelmed. It Isn't Going To Get Any Better.III. DEPENDENCY BREAKING TECHNIQUES.25. Dependency Breaking Techniques.Appendix: Refactoring.Glossary. |
Inhalt
Working with Feedback | 9 |
Sensing and Separation | 21 |
The Seam Model | 29 |
Urheberrecht | |
21 weitere Abschnitte werden nicht angezeigt.
Andere Ausgaben - Alle anzeigen
Häufige Begriffe und Wortgruppen
AddEmployeeCmd behavior better break dependencies bugs Chapter characterization tests checkPeriodSeconds clients code base compile CppClass create database declarations easier effect sketch Encapsulate example Extract and Override Extract Implementer Extract Interface 362 Extract Method fake feature Figure forward function function pointers Global References header instance variables instantiate interception point it.hasNext Java JUnit languages legacy code LoginCommand Message MessageForwarder method named Method Object mock object ModelNode monster method move null outputStream Override Method parameter PermitRepository piece of code pinch point preprocessor pretty private static final problem production code public class public void refactoring tool replace responsibilities seam singleton Sprout Method static method step String struct Subclass and Override superclass techniques test harness test-driven development TestResult tests in place things unit tests virtual function Wrap write tests writeField(outputStream xUnit