CODERU: another way to keep your code under control
CODERU is a java code quality tool to enforce good design in respect to package dependencies.
CODERU is an achronym and stands for (Co)mmon (De)pendency (Ru)les.
The CODERU-rules rely on reserved package names and the allowed dependency rules between them expressed in a general way.
Unlike other tools forcing you to define allowed or disallowed individual package dependencies CODERU is based on a fixed set of general rules. The dependencies between packages need not be defined explicitly.
These general dependency rules are based on common design practices what is reflected in preserved package names: "api", "common", "impl" and "factory".
As an integral part of CODERU there is a tool checking your code for rule conformance.
CODERU was invented to ensure structural code quality in a complex and rapidly growing project.
There was no time for expensive up front desing. The code was so good as the experience of the developer that has written it. Of course there were Findbugs and other "code-metric" tools in place, but they mostly force quality on algorithm and class methods level.
In order to improve structural quality on classes and packages level the component oriented design approach was introduced. The components should interact with each anothers only over they API and hide own implementation. The component bordes were defined over package naming convention ("api","impl").
So far so good. That was the step in the right direction. But because of the complexity it was not possible for the developers to grasp all dependencies in the given piece of code and follow the rules. The motivation to do it suffered under schedule pressure too :).
According to the motto "You Can't Manage What You Don't Measure" the tool was written to check the code for rule conformance automatically.
Better code quality