Transformation Priority Premise
Transformation Priority Premise (TPP) is a programming approach developed by Robert Cecil Martin (Uncle Bob) as a refinement to make the process of test-driven development (TDD) easier and more effective for a computer programmer.
Transformation Priority Premise states that simpler transformations should be preferred:
[...]Refactorings have counterparts called Transformations. Refactorings are simple operations that change the structure of code without changing its behavior. Transformations are simple operations that change the behavior of code. Transformations can be used as the sole means for passing the currently failing test in thecycle. Transformations have a priority, or a preferred ordering, which if maintained, by the ordering of the tests, will prevent impasses, or long outages in the
red/green/refactor
cycle.
red/green/refactor
— "Uncle Bob" Martin, "The Transformation Priority Premise", Uncle Bob's Blog
This approach facilitates the programmer doing the simplest possible thing for the purposes of test-driven development as they can explicitly refer to the list of transformations and favor the simpler transformations (from the top of the list) over those further down in the list in the first instance.
The Transformations
- ({} → nil) no code at all → code that employs nil
- (nil → constant)
- (constant → constant+) a simple constant to a more complex constant
- (constant → scalar) replacing a constant with a variable or an argument
- (statement → statements) adding more unconditional statements.
- (unconditional → if) splitting the execution path
- (scalar → array)
- (array → container)
- (statement → tail-recursion)
- (if → while)
- (statement → non-tail-recursion)
- (expression → function) replacing an expression with a function or algorithm
- (variable → assignment) replacing the value of a variable.
- (case) adding a case (or else) to an existing switch or if
Uncle Bob also explicitly stated: "There are likely others".
References
- Roman Numerals Kata with Commentary
- Transformation Priority Premise Applied
- The Transformation Priority Premise explained by Uncle Bob
External links
- Uncle Bob's Blog Post on TPP
- Video recording of his original presentation of TPP at NDC (Norwegian Developers Conference) 2011
This article is issued from Wikipedia - version of the Friday, January 08, 2016. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.