Page MenuHomePhabricator

Find or create tools for detecting architectural boundary violations
Open, Needs TriagePublic

Description

To reduce coupling in the MediaWiki code base, it would be helpful to define technical layers and domain modules. Such layers and modules should have clear boundaries and interfaces that come with rules about which may depend on which, providing guidance for reducing coupling.

To support the effort of structuring the code base into layers and domains, a tool would be helpful that could identify violations, to guide development efforts and to measure progress.

Such a tool can be thought of as consisting of two parts:

  • one part identifies dependencies between classes, and membership of classes in layers and domains
  • the second part analyzes these dependencies with respect to a set of architectural constraints.