Dragée is still a work in progress.
Leave us a star on GitHub if you like it
Dragée
Dragée is an architecture linter & grapher for DDD, clean architecture, hexagonal or your architecture
Dragee is a solution for clean software design. It is the ultimate tool for software crafters seeking clarity and precision in their work. Dragée is designed from scratch with usability and extensability at its core.
Dragée is easy to setup and easy to install. Install Dragée CLI and update your project's dependancy with Dragée's. Dragée is currently available on Maven but can also be installed in a project using Gradle.
npx install dragee
For Java, see the installation steps
Who knows best your codebase than you? Dragée relies on easy-to-add annotations on your code to provide a result you can trust. The annotations are self-explanory and easy to import in every part of your application code.
package org.payment.basket.model;
import io.dragee.annotation.ddd.DDD;
@DDD.ValueObject
public record BasketId(String value) {
public static BasketId of(String value) {
return new BasketId(value);
}
}
Once Dragée is up and running, access useful modelizations and reports on your architecture’s codebase health. Its CLI is modular so only what’s needed is downloaded on a local registry.
dragee draw && dragee report
Annotating your codebase to provide Dragée the needed informations will also improve your codebase documentation. As an added benefit, tagging your code will allows it to scream what it is or what it does.
The modules around Dragée are carefully built, tested, and deployed using Dagger with containerization for isolation and caching for faster and more robust modules updates
Dragée is designed to take what it needs to accomplish its task. Modules can be easily added by developers to enhance the existing features or add new ones.
Dragée is shipped with nice defaults to lint and modelize your DDD or clean architecture codebase. Plug it, run it and fix bad patterns in your existing code.
By default Dragée can create graph of your architecture using detailed C4 models or simpler Mermaid syntax. Integrating these models into your documentation is easy.
Dragée is extensible: it allows to create easily custom asserters and graphers for a specific architecture or a missing rule.