ABsolute PRIority COUnter (abpricou)
Absolute Priority Premise
In 2012 Micah Martin defined some heuristics to objectively say, "This code is better than that code." Building on Uncle Bob's Transformation Priority Premise he defined six components, i.e. basic building blocks of code, and assigned them a mass. The total mass of a piece of code is the sum of the mass of its respective components. A lower value is better.
A detailed explanation of the Absolute Priority Premise is given in the two presentations of 8th Light University (8LU) - Part One and Part Two. See also Micah's Coin Changer Kata as a complete example of applying the premise.
- abpricou currently supports Java 7 due to limitations of plyj.
- I developed it to count the mass of a specific set of classes. No exhaustive tests have been done. If you find something that us not counted, please get in touch.
- I was interested in the mass of algorithms, so class constructs like class definitions are ignored. Probably a class definition is a constant (for the code) and a binding (for the name). Also enums and all annotations as well as generics were ignored.
- Counting mass depends on opinion. You may count different. If so, please get in touch.
I used abpricou to compare different implementations of Word Wrap kata in my blog post Absolute Priority Premise, an Example.
abpricou's license is the
New BSD License,
license.txt in this repository. Both plyj and PLY are also BSD