Type something to search...
Devlog #2 – Modùle C4

Devlog #2 – Modùle C4

👋 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 ?

img.png

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

img.png

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

img.png

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

img.png

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 !

Related Posts

Devlog #0 – A new beginning

Devlog #0 – A new beginning

👋 Bienvenue sur le Devlog ! Bonjour Ă  toi cher membre de la JetTeam, et bienvenue sur ce devlog qui me sert, tel un journal de bord Ă  documenter l'avancĂ©e et les choix fait sur Pathfinder. A ch

read more
Devlog #1 – Roadmap & authentification sĂ©curisĂ©e

Devlog #1 – Roadmap & authentification sĂ©curisĂ©e

🚀 Focus fonctionnel : Les premiĂšres briques Voici les premiĂšres briques / milestones du projet :1. Clean Init Reprise de zĂ©ro : recrĂ©ation d’un mono

read more