Modèle C4

Architecture 🟡 Mid

Définition

Méthode de Simon Brown pour représenter une architecture logicielle à quatre niveaux de zoom : Contexte (le système et ses utilisateurs/systèmes voisins), Conteneurs (applications, API, bases déployables), Composants (modules à l'intérieur d'un conteneur) et Code (classes, si nécessaire). Chaque niveau s'adresse à un public différent et reste lisible seul ; l'outil Structurizr permet de décrire le modèle en texte versionné.

Analogie

Google Maps pour un logiciel : la vue pays, puis la ville, puis le quartier, puis la rue ; on choisit le zoom selon l'interlocuteur.

Exemple de code

# workspace.dsl (Structurizr DSL) – modèle versionné avec le code
workspace {
  model {
    client = person "Client"
    boutique = softwareSystem "Boutique en ligne" {
      web = container "Front Next.js" "React"
      api = container "API commandes" "NestJS"
      db  = container "Base"          "PostgreSQL"
    }
    client -> web "Commande via"
    web -> api "Appelle" "HTTPS/JSON"
    api -> db  "Lit/écrit"
  }
  views { systemContext boutique { include * } container boutique { include * } }
}

Cas d'usage

Expliquer l'architecture à un nouvel arrivant, à un client ou en entretien sans noyer le contexte sous les détails d'implémentation.

Anti-pattern

Un unique schéma « boîtes et flèches » qui mélange serveurs, classes et utilisateurs : personne ne sait à quel niveau on parle.
#architecture#documentation#interview

Fiche mise à jour le 2026-09-27

← → au clavier pour passer d'une fiche à l'autre