A set of CLI tools to help you to analyse and refactor highly coupled classes.
It is a set of CLI tools to help you to analyse and refactor highly coupled classes.
As you know Law of Demeter and S.O.L.I.D guidances, you need your classes loosely coupled. And for this, there is one only rule : ABSTRACTION
This app provides some helpers to add abstraction into concrete classes with minimum pain.
When you need abstraction, you have to "zoom out" from the code and see the big picture. For that, what's better than graphical representation ?
This app does not analyse the details of implementation itself but its structure and particullary its dependencies between types, a.k.a the efferent coupling.
With the proprer vocabulary and a proper grammar, each source code can be transformed into a directed graph.
Then, with this abstract representation, it uses some algorithms and some powerfull properties of the graph theory to find what's wrong with the source code.
Unlike other tools like PDepend which produce code metrics (or statistics) on coupling, it goes into a level of atomicity to indeed infer where problems are located.
To ease refactoring, the first thing is to decouple your monolith. The real quality of code is its conformance to the law of Demeter and for that, it's not about average length of methods, code coverage, or number of methods per class or their inheritance depth.
Ok, it's a hint but like any other statistics, it's only a general picture, not a way to guide you and answer to the question : "Where do I begin to refactor the real shit ?"