Diviser un programme en modules distincts et indépendants, chacun se concentrant sur une fonctionnalité spécifique.
Chaque module contient sa propre logique, et peut être développé et testé individuellement. Les modules interagissent les uns avec les autres en utilisant des interfaces.
Découper un programme en petits modules autonomes et cohérents
Encapsuler leur logique et exposer des interfaces nécessaires pour interagir avec d'autres modules.
Fournir une abstraction en exposant uniquement les fonctionnalités essentielles nécessaires à leur utilisation
Interfaces utilisées pour spécifier les dépendances et les interactions entre les modules.
Approche de conception logicielle qui met l'accent sur la modélisation du domaine métier d'une application.
Délimitent les limites conceptuelles d'un contexte métier et définissent des frontières claires entre les sous-contextes
Découpe un contexte métier en trois couches.
Utilise le modèle de domaine pour répondre aux besoins des utilisateurs et gérer les actions de l'utilisateur
Cœur métier de l'application. C'est là que se trouve le modèle de domaine qui représente les concepts et les règles métier.
Détails techniques de l'application, tels que le stockage des données, les communications réseau, les intégrations externes, etc.
Un contexte métier commun qui est utilisé par plusieurs contextes / sous-contextes dans une application.
API REST complète à partir d'une simple définition de modèle de données.
Prend en charge divers formats de données, notamment JSON et JSON-LD.
Documentation interactive, en utilisant le standard OpenAPI.
Assurer que les données reçues via l'API sont conformes aux règles définies.
Facilite la mise en œuvre du filtrage, du tri et de la pagination des résultats pour les ressources API.
Gérer l'authentification et l'autorisation des utilisateurs, l'accès aux ressources, la gestion des rôles et des permissions.
Opérations qui modifient l'état du système, peuvent avoir des effets de bord, tels que la persistance des données dans une base de données.
Opérations qui ne modifient pas l'état du système, mais qui récupèrent des données.
Permet de clarifier les intentions du code et de mieux organiser les responsabilités.
Permet d'encapsuler les règles métiers dans des classes.
Permet d'historiser les processus de l'application.
Vérifier le comportement d'une unité de code isolée, telle qu'une fonction, une méthode ou une classe, en s'assurant qu'elle produit les résultats attendus pour différentes entrées.
Évaluent le système dans son ensemble et vérifient si les différentes parties de l'application fonctionnent correctement ensemble pour atteindre les objectifs fonctionnels spécifiés.
Analyser les architectures logicielles et détecter les violations des règles de conception.