Readplace

Clean Coder Blog

8thlight.com 18 min read
View original
Summary (TL;DR)
Uncle Bob proposes that TDD's green phase uses Transformations, behavior-changing operations that move code from specific to generic. These include (nil->constant), (constant->scalar), (unconditional->if), (if->while), and others. He argues transformations have a priority order based on complexity, and preferring simpler ones avoids impasses. Using the Word Wrap kata, he shows how a test sequence forcing a low-priority transformation leads to an impasse, while a different sequence using higher-priority transformations avoids it. He suggests this could enable tool support and formal proofs of correctness.