👨‍💻
Software Engineering
Refactoring: Improving the Design of Existing Code
Refactoring: Improving the Design of Existing Code
  • Overview
  • Chapter 2
    • Defining Refactoring
    • Why Should We Refactor?
    • When Should We Refactor?
    • Problems with Refactoring
    • Refactoring, Architecture, and Yagni
    • Refactoring & the Wider Software Development Process
    • Refactoring & Performance
    • Going Further
  • Chapter 3
    • Bad Smells in Code
    • Smell: Mysterious Name
    • Smell: Duplicated Code
    • Smell: Long Function
Powered by GitBook
On this page
  1. Chapter 2

Refactoring & the Wider Software Development Process

To operate in an agile way, a team has to be capable and enthusiastic refactorers.

  • Refactoring's early adoption was part of Extreme Programming.

  • To operate in an agile way, a team has to be capable and enthusiastic refactorers.

  • For this to happen, the Team's processes must align with making refactoring a regular part of their work.

🪨 Foundations for Refactoring

  1. Self-Testing Code: A suite of automated tests can provide confidence that changes aren't breaking functionality.

  2. Continuous Integration: Each member's refactoring efforts are quickly shared with the team.

  3. YAGNI: Refactoring & yagni positively reinforce each other. It's easier to change a simple system rather than one with speculative flexibility.

  • Balance these practices and you get a virtuous circle with a code base that responds rapidly to changing needs and is reliable.

  • A firm technical foundation can drastically reduce the time it takes to get a good idea into production.

  • These practices aren't easy but they are proven. They take practice & skill.

PreviousRefactoring, Architecture, and YagniNextRefactoring & Performance

Last updated 11 months ago