Architecture en couches et hexagonale

L'architecture en couches et sa règle de dépendance, puis l'architecture hexagonale : domaine au centre, ports, adaptateurs primaires et secondaires, et inversion des dépendances.

  • 22 cartes
  • 3 thèmes
  • Gratuit

Le programme, thème par thème

Le poids de chaque thème suit celui que lui donne l'examen.

  1. Notions
  2. Questions
  3. Ranger et relier

Quelques cartes du deck

  • Architecture en couches : de quoi s'agit-il ?

    Voir la réponse

    Organisation d'un logiciel en strates empilées, présentation, application, domaine, persistance, où chaque strate ne s'appuie que sur celles qui sont en dessous.

    On peut remplacer une strate sans toucher à celles du dessus : changer la base de données ne doit pas obliger à réécrire les écrans.

  • Dans cette classe du domaine, quelle ligne rompt l'architecture hexagonale ?

    ```java
    package fr.iut.commande.domaine;

    import java.sql.Connection;
    import java.util.List;

    public class Commande {
    private final List<Ligne> lignes;

    public void enregistrer(Connection connexion) {
    connexion.prepareStatement("INSERT INTO commande VALUES (?)");
    }
    }
    `

    • import java.sql.Connection;
    • package fr.iut.commande.domaine;
    • private final List<Ligne> lignes;
    • import java.util.List;
    Voir la réponse

    import java.sql.Connection;

    Une liste de la bibliothèque standard ne lie le domaine à aucune technologie, mais java.sql.Connection est un type technique (JDBC) : le domaine dépend maintenant de la base. Il doit déclarer un port, par exemple DepotCommande, que la persistance implémentera.

  • Dans une architecture en couches classique, les dépendances vont toujours … : la présentation appelle l'application, qui appelle le domaine.

    Voir la réponse

    Dans une architecture en couches classique, les dépendances vont toujours vers le bas : la présentation appelle l'application, qui appelle le domaine.

    Dans la variante stricte, une couche ne parle qu'à la couche immédiatement inférieure ; dans la variante souple, elle peut aussi sauter une couche.

  • Règle de dépendance : de quoi s'agit-il ?

    Voir la réponse

    Contrainte selon laquelle une strate d'un logiciel ne peut dépendre que de celles situées sous elle, jamais de celles situées au-dessus.

    Si le domaine importait une classe de l'écran, on ne pourrait plus le tester ni le réutiliser sans embarquer l'interface : une seule dépendance montante suffit à ruiner le découpage.

  • Dans une architecture hexagonale, dans quel sens va la dépendance entre DepotCommandeSql et DepotCommande (l'interface du domaine) ?

    • DepotCommande dépend de DepotCommandeSql
    • DepotCommandeSql dépend de DepotCommande
    • Les deux dépendent l'une de l'autre
    • Aucune dépendance : une interface n'a pas de lien avec ses implémentations
    Voir la réponse

    DepotCommandeSql dépend de DepotCommande

    Une classe qui implémente une interface dépend de cette interface. Comme l'interface est dans le domaine, la dépendance technique pointe vers le domaine, et non l'inverse.