Description
Sonargraph is a software quality tool that heavily inspired practices enforced by Spring Modulith. It allows architects to define an intended architecture, verify that against a codebase, perform virtual refactorings and (visually) explore the effects on the architectural quality of those.
Working with Sonargraph usually starts with defining the logical architecture in a DSL. With Spring Modulith in place, a lot of the structural information needed for that can be found in the codebase itself. We could allow creating such a skeleton architectural description through the Documenter
API and inspect our ApplicationModules
.
artifact $module.displayName {
include $asPath($module.basePackage)
// For each nested module
exclude $asPath($nestedmodule.basePackage)
// For each named interface
interface $ni.name {
/For each type
include $type
}
}
I guess we could also register all allowed dependencies declared by application modules or fallback to the currently existing ones if none are declared explicitly.