To keep code young and flexible for a long useful life, design has to
be reconsidered and revised with each new behavior added. Consequently,
refactoring is a step in the TDD cycle. Even with that emphasis, code
can deteriorate into the incomprehensible. Just saying refactor, does not
cause it to happen. It takes skill to identify code and design problems;
it takes skill to envision improvements; and it takes skill to transform
code while keeping it working the whole time. In this talk we’ll explore
the three essential skills to keeping code young.
In object-oriented languages like Ruby, people often say that “everything is an object”—but first-class functions have become standard for object-oriented languages too. C# has had them and other related features for years, and even Java is in the ga…