Working Effectively with Legacy CodePrentice Hall Professional Technical Reference, 2004 - 434 pagini Í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. |
Cuprins
Working with Feedback | 9 |
Sensing and Separation | 21 |
The Seam Model | 29 |
Drept de autor | |
29 alte secțiuni nu sunt arătate
Alte ediții - Afișează-le pe toate
Termeni și expresii frecvente
AddEmployeeCmd behavior better break dependencies bugs Chapter characterization tests checkPeriodSeconds clients code base compile CppClass create database declarations duplication easier effect sketch example Extract and Override Extract Implementer Extract Interface 362 Extract Method fake feature Figure function pointers GDIBrush header instance variables instantiate interception point it.hasNext Java JUnit languages legacy code LoginCommand MessageForwarder method named Method Object mock object monster method move null original class outputStream Override Method parameter Parameterize Constructor PermitRepository piece of code pinch point Preserve Signatures pretty private static final problem production code public class public void refactoring tool replace responsibilities ScheduledJob 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
