
Devlog #2 â ModĂšle C4
- Adrien Degand
- Pathfinder , Devlog
- 25 Jul, 2025
đ Câest lâheure du Devlog 2 !
Salutation, aujourdâhui nous parlerons dâun sujet trĂšs apprĂ©ciĂ© des dĂ©veloppeurs đ, la documentation et plus prĂ©cisĂ©ment celle de lâarchitecture du projet !
Au programme :
- Quâest-ce que le modĂšle C4 ?
- Diagramme du contexte
- Diagramme des conteneurs
- Diagramme des composants de lâAPI backend
- Quâest-ce que ça apporte au projet ?
- La suite !
đ€ Quâest-ce que le modĂšle C4 ?
Nous avons tous dĂ©jĂ eu cette image de schĂ©ma dâarchitecture dâun projet vraiment incomprĂ©hensible, partant dans tous les sens, câest lĂ que le modĂšle c4 vient en aide !
Au lieu de tout regrouper dans un seul diagramme, le modĂšle C4 permet de rĂ©aliser plusieurs diagrammes avec un niveau dâabstraction diffĂ©rente. Câest-Ă -dire que nous allons partir dâune vision large du projet et nous rapprocher petit Ă petit de chaque composant de notre projet.
Pour reprĂ©senter ce modĂšle, nous pouvons prendre lâexemple dâune carte du monde que lâon divise en continents, en pays, en rĂ©gions, en villes, chacun avec ses propres informations en fonction de son niveau, on ne va pas afficher toutes les villes du monde sur une carte du monde entier.
Généralement, le modÚle C4 est divisé en 4 niveaux :
- Niveau 1: Diagramme de contexte (parties prenantes, systĂšmeâŠ)
- Niveau 2: Diagramme des conteneurs (API, frontend, application mobileâŠ)
- Niveau 3: Diagramme des composants (controller, servicesâŠ)
- Niveau 4: Diagramme de codes (UML)
đ Diagramme du contexte systĂšme
Ă quoi sert-il ?
Le diagramme de contexte permet de prendre du recul sur le projet et de voir quelles sont les parties prenantes et les différents systÚmes qui vont interagir avec notre projet.
Comment réaliser ces diagrammes ?
Pour réaliser les diagrammes du modÚle C4, nous avons utilisé Structurizr, qui permet de créer, et gérer les multiples diagrammes de notre projet via du code DSL.
Le contexte systĂšme de Pathfinder
Nous pouvons retrouver deux catĂ©gories dâentitĂ©s qui interagissent avec notre systĂšme :
- Person (Les parties prenantes) : Les JetPeople qui sont les utilisateurs internes Ă Jetdev
- Software System (Les diffĂ©rents systĂšmes de notre projet) : Notre systĂšme et les systĂšmes externes (Google) qui par exemple nous permettent de gĂ©rer lâauthentification.
Nous pouvons retranscrire ce diagramme comme : Notre projet possĂšde des utilisateurs internes Ă Jetdev qui vont interagir avec notre projet Pathfinder, qui lui-mĂȘme interagit avec les serveurs Oauth2 de Google afin de gĂ©rer lâauthentification.
đŠ Diagramme des conteneurs
Ă quoi sert-il ?
Le diagramme des conteneurs permet de commencer Ă sâintĂ©resser Ă notre systĂšme, de savoir quelles sont les diffĂ©rentes applications au sein de notre systĂšme, de voir avec qui et comment elles vont interagir avec les autres, par qui elles sont utilisĂ©esâŠ
Les conteneurs de Pathfinder
Les entitĂ©s que lâon retrouve dans ce diagramme :
- Container (Les conteneurs) : Les applications de notre projet Pathfinder
- Software System (Les systĂšmes externes) : Les systĂšmes externes (Google) qui interagissent avec les containers.
- Person (Les JetPeople) : Les utilisateurs de lâapplication.
Ce diagramme nous permet de clairement comprendre comment les applications sont censées communiquer avec les autres, quelles sont les applications que les utilisateurs peuvent utiliser.
đ§âđ» Diagramme des composants de lâAPI backend
Ă quoi sert-il ?
Le diagramme de composants permet de sâintĂ©resser au fonctionnement de nos diffĂ©rentes applications et de dĂ©crire les composants internes Ă celles-ci avec leurs responsabilitĂ©s, leur implĂ©mentation et leurs relations.
Les composants de lâAPI backend Pathfinder
Dans ce diagramme, nous retrouvons :
- Container (Le Conteneur) : La partie de notre systĂšme que lâon souhaite dĂ©crire et le conteneur auquel il communique.
- Component (Les composants) : Les différents composants que contient le conteneur avec les différentes relations.
Quâest-ce que cela apporte au projet ?
- Une documentation simple et claire du projet.
- Compréhensible pour les nouveaux membres du projet et les non-développeurs.
- Beaucoup plus simple Ă rĂ©aliser et Ă maintenir que les diagrammes traditionnels dâarchitecture.
- Pas de dangerositĂ© supplĂ©mentaire (malgrĂ© son nom đ„âŠ).
đ€ La suite !
Pour la suite du projet le dĂ©fi est de mettre Ă jour continuellement les graphiques du modĂšle C4 afin quâils soient toujours au plus proche de lâarchitecture !
Si vous souhaitez plus dâinformations sur le modĂšle C4, William Ă rĂ©alisĂ© un super talk Ă ce sujet que vous pouvez revoir ici !