An example of clean architecture with Spring Boot
Ce backend est conçu selon le pattern d'architecture hexagonale (également appelé Clean Architecture). De ce fait, les principes SOLID sont utilisés dans le code, notamment le Dependency Inversion Principle (à ne pas confondre avec la classique injection de dépendances avec Spring par exemple).
Concrètement, on distingue 3 packages principaux : domain
, use_cases
et infrastructure
qui doivent respecter ces règles :
domain
contient le métier et son intelligence et n'a aucune dépendance vers l'extérieur : ni vers des frameworks (Hibernate par exemple), ni vers les packagesuse_cases
etinfrastructure
.use_cases
est un chef d'orchestre et va dépendre uniquement dudomain
pour répondre à des cas d'utilisation métier.use_cases
ne doit pas avoir de dépendances versinfrastructure
.infrastructure
contient toute la technique, et ne doit pas contenir de métier.infrastructure
a des dépendances versdomain
,use_cases
et les frameworks.
./gradlew assemble
./gradlew check
./gradlew pitest
./gradlew bootRun