Emergent Designs: Design Patterns and Refactoring in Agile Development
With the increasing deployment in agile development methods, many teams and organizations are learning about the practice of refactoring as an integral part of development. Refactoring is the process of changing a software system in such a way that it does not alter its external behavior yet improves its internal structure. Join Alan Shalloway as he discusses that, although refactoring is valuable in and of itself, it can be made even more powerful when complemented with the lessons learned from proven design patterns. Refactoring actually comes in two flavors: improving poor code, and turning good code into better code when requirements change. The dual practices of refining design and improving code will enable your software to retain the vibrancy that is essential to code flexibility and longevity. Understanding refactoring and design patterns enhances agile methods considerably and can be a key practice in non-agile development as well.
- The secrets of refactoring designs and code
- Patterns for loose coupling, strong cohesion, and no redundancy
- Refactoring patterns used in Test Driven Development (TDD)