Une architecture d'application appropriée peut non seulement favoriser le développement du projet dans la bonne direction, est facile à maintenir, mais guide également les membres de l'équipe pour qu'ils collaborent efficacement.
DDD consiste à piloter la mise en œuvre de l'architecture applicative du point de vue du terrain. Ensuite, nous allons introduire une solution d'atterrissage.
Superposition d'architecture
Tout d'abord, en termes de niveau d'architecture, tout en suivant le modèle d'architecture en couches de DDD, combiné à la forme de l'architecture hexagonale, un nouveau modèle d'architecture en couches est formé. Comme suit:
Les responsabilités de chaque niveau sont les suivantes :
- La couche adaptateur (adaptateur) est l'entrée du trafic système et distribue les demandes à la couche application pour traiter la logique d'application spécifique. Cette couche couvre les demandes d'interface métier, le traitement par lots, les messages, etc.
- La couche de façade (façade), en tant que façade du système, est utilisée pour exprimer la capacité du système à être exposé au monde extérieur.
- La couche d'application (application) est la couche d'orchestration de la logique d'application du système, qui est utilisée pour l'orchestration métier inter-système ou inter-agrégation, et n'exprime pas les capacités de contrôle de base.
- La couche de domaine (domaine), en tant que cœur de l'architecture pilotée par domaine, porte le modèle de base, les règles et les services du système, et est le cerveau de l'ensemble du système.
- La couche d'infrastructure (infrastructure) est la base du système, qui prend en charge la couche de domaine ; le positionnement de cette couche est principalement les capacités de base du système (cache, stockage, etc.), l'intégration des systèmes de support en aval, et le anti-corrosion des capacités de domaine.
dépendances architecturales
En termes d'architecture de projet, l'interaction de dépendance entre chaque module composant est la suivante :
structure d'ingénierie
Après avoir formé le mode d'atterrissage de l'architecture, la mise en œuvre du projet est également très importante, ce qui affectera la maintenabilité du projet et la stratégie de mise en œuvre de l'étape d'atterrissage de codage. Jetons un coup d'œil à une structure d'ingénierie qui peut être débarquée :
.
|-- app
| |-- adapter
| |-- application
| |-- domain
| |-- facade
| `-- infrastructure
| |-- acl
| |-- dal
| |-- integration
|-- bootstrap
|-- conf
`-- test
La signification de chaque répertoire est la suivante :
- app : le répertoire où l'application d'ingénierie stocke le code, et les sous-répertoires sont les différents modules mentionnés dans la couche d'architecture précédente
- bootstrap : Le starter de l'application, ainsi que les informations de configuration de l'application sauf l'environnement
- conf : informations de configuration liées à l'environnement
- test : code de test lié au projet
En termes de structure d'ingénierie, la couche d'infrastructure est divisée en fonction des responsabilités :
- dal : module d'interaction avec la base de données
- intégration : module d'intégration de système, tel que l'intégration avec des systèmes en aval, l'intégration d'autres fonctionnalités de base
- acl : couche anti-corrosion du système, isolation anti-corrosion entre le domaine et les paramètres de base
Si vous souhaitez afficher des informations plus détaillées sur la structure du projet, cliquez sur ddla Architecture Engineering Specifications .
utilisation du schéma
Utilisez la commande maven suivante pour remplacer le groupId, l'artefactId, la version, le package et d'autres paramètres par les valeurs que vous attendez. La version de l'échafaudage (ddla-archetype.version) peut être directement recherchée dans l'entrepôt maven à l'aide de groupId (ddla -archétype).
mvn archetype:generate \
-DgroupId=com.lazycece.ddlademo \
-DartifactId=ddlademo \
-Dversion=1.0.0-SNAPSHOT \
-Dpackage=com.lazycece.ddlademo \
-DarchetypeArtifactId=ddla-archetype \
-DarchetypeGroupId=com.lazycece.ddla \
-DarchetypeVersion=${ddla-archetype.version}
adresse open source
https://github.com/lazycece/ddla