...
- Long term application maintainability and evolution
- Being able to split and separate application artifacts later on if needed.
...
ArchUnit
Archunit ArchUnit is a library that can be used for this architecture quality purpose. It integrates with Unit Test to verify the application code structure the same way standard Unit Test classes are verifying the application code logic.
It ArchUnit can be used to:
- Verify application packages and classes dependencies
- Detect dependency cycles in the application structure
- Verify annotations, inheritance, naming conventions, ...
- Compute some software architecture metrics
For more info about what to check: https://www.archunit.org/userguide/html/000_Index.html#_what_to_check
It gives ArchUnit gives flexibility to:
- Ignore some specific classes if needed (https://www.archunit.org/userguide/html/000_Index.html#_ignoring_violations)
- Be implemented incrementally for existing code base (https://www.archunit.org/userguide/html/000_Index.html#_freezing_arch_rules)
...