a software system in a way that does not alter the external behavior of the code yet improves its internal structure • Changes in small steps • Change code • Run tests • Commit
tests • Test Feedback • Separate different parts • Switch to Visual Studio and refactor this code base: • https://github.com/michelschep/refactoring-first-example
a feature • Comprehension refactoring: make it easier to understand • Litter-pickup refactoring (boy scout rule) • Refactoring in a code review (pair programming)
Software developers are professionals • Our job is to build effective software as rapidly as we can • Refactoring is a big aid into building software quickly • I’m being paid for my expertise in programming new capabilities fast, and the fastest way is by refactoring – therefore I refactor