« Bounded Context Canvas » : différence entre les versions

De Wiki Agile
Aller à la navigation Aller à la recherche
 
(40 versions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
[[Category:DDD]]
[[Category:DDD]]
Auteurs : Kenny Baas, Kim Lindhard, Michael Plöd, Maxime Sanglan-Charlier<br/>
Auteurs : [https://github.com/ddd-crew/bounded-context-canvas/graphs/contributors Contributeurs] ainsi que Kenny Baas, Kim Lindhard, Michael Plöd, Maxime Sanglan-Charlier<br/>
Source : [https://github.com/ddd-crew/bounded-context-canvas The Bounded Context Canvas]<br/>
Source : [https://github.com/ddd-crew/bounded-context-canvas The Bounded Context Canvas]<br/>
Date : 21/05/2023<br/>
Date : 21/05/2023<br/>
Ligne 15 : Ligne 15 :
Le canevas vous guide tout au long du processus de conception d'un contexte délimité en vous demandant de prendre en compte et de faire des choix sur les éléments clés de sa conception, du nommage aux responsabilités, en passant par son interface publique et ses dépendances.<br/>
Le canevas vous guide tout au long du processus de conception d'un contexte délimité en vous demandant de prendre en compte et de faire des choix sur les éléments clés de sa conception, du nommage aux responsabilités, en passant par son interface publique et ses dépendances.<br/>
<br/>
<br/>
[[Fichier:Bounded-context-canvas-v5.jpg|border|1000px]]<br/>
[[Fichier:Bounded-context-canvas-v5.jpg|border|1000px|link=]]<br/>
<br/>
<br/>
[https://github.com/ddd-crew/bounded-context-canvas/blob/master/resources/bounded-context-canvas-5v-blank.jpg Téléchargez le canevas vierge]<br/>
[https://github.com/ddd-crew/bounded-context-canvas/blob/master/resources/bounded-context-canvas-5v-blank.jpg Téléchargez le canevas vierge]<br/>
<br/>
<br/>
[[Fichier:Bounded-context-canvas-v5-FR.jpg|border|1000px]]<br/>
[[Fichier:Bounded-context-canvas-v5-FR.jpg|border|1000px|link=]]<br/>


==Comment l'utiliser==
==Comment l'utiliser==
Ligne 30 : Ligne 30 :
Le format par défaut du canevas Bounded Context présenté ci-dessus n'est pas le seul disponible, vous en trouverez d'autres ci-dessous. N'hésitez pas à expérimenter de nouveaux formats.<br/>
Le format par défaut du canevas Bounded Context présenté ci-dessus n'est pas le seul disponible, vous en trouverez d'autres ci-dessous. N'hésitez pas à expérimenter de nouveaux formats.<br/>
<br/>
<br/>
[https://medium.com/nick-tune-tech-strategy-blog/bounded-context-canvas-recipe-use-case-swimlanes-11ca647175d3] Couloirs de nage des cas d'utilisation : ce style organise la rubrique "communication" en couloirs de nage montrant la séquence dans laquelle les interactions se produisent en utilisant le format suivant : ''message entrant -> décision(s) prise(s) -> message(s) sortant(s)''.
[https://medium.com/nick-tune-tech-strategy-blog/bounded-context-canvas-recipe-use-case-swimlanes-11ca647175d3 Couloirs de nage des cas d'utilisation] : ce style organise la rubrique "communication" en couloirs de nage montrant la séquence dans laquelle les interactions se produisent en utilisant le format suivant : ''message entrant -> décision(s) prise(s) -> message(s) sortant(s)''.


==Définition des rubriques==
==Définition des rubriques==
Voici une brève explication de chaque rubrique du canevas.
===Nom===
Il est difficile de donner un nom. Le fait d'écrire le nom de votre contexte et d'obtenir l'accord de l'équipe orientera la manière dont vous concevrez le contexte.
===Objectif===
Quelques phrases décrivant le pourquoi et le quoi du contexte en langage métier. Aucun détail technique à ce stade.<br/>
<br/>
La rédaction de l'objectif vous oblige à formuler clairement des idées imprécises et à veiller à ce que tous les membres de l'équipe soient sur la même longueur d'onde.<br/>
<br/>
Décrivez l'objectif d'un point de vue métier, vous pouvez également nommer les acteurs clés pour lesquels le contexte délimité apporte de la valeur.<br/>
===Classification stratégique===
Quelle est l'importance de ce contexte pour le succès de votre organisation ?
* domaine principal : une initiative stratégique clé
* domaine support : nécessaire mais pas un facteur de différenciation
* domaine générique : une capacité commune que l'on retrouve dans de nombreux domaines
<br/>
Quel rôle le contexte joue-t-il dans votre modèle d'entreprise ?
* générateur de revenus : les gens paient directement pour cela
* générateur d'engagement : les utilisateurs l'apprécient mais ne paient pas pour cela
* générateur de conformité : protège la notoriété et l'existence de l'entreprise.
<br/>
L'évolution du concept (voir les [https://medium.com/wardleymaps Cartes de Wardley]) :
* genèse : nouveau domaine inexploré
* sur mesure : les entreprises construisent leurs propres versions
* produit : des versions prêtes à l'emploi existent et offrent une certaine différenciation
* produit de base : il existe des versions hautement standardisées.
Pour une description détaillée de la genèse, du sur-mesure, du produit de base, voir les [https://twitter.com/swardley/status/989211014485901316/photo/1 définitions dans les Évolutions des Cartes de Wardley].
Pour obtenir de l'aide pour remplir cette section du canevas, voir les [https://github.com/ddd-crew/core-domain-charts Diagrammes des Domaines de base (''Core Domain Charts'')].
===Rôles du domaine===
Comment pouvez-vous caractériser le comportement de ce contexte délimité ? Reçoit-il de gros volumes de données et les analyse-t-il pour en tirer des enseignements - un contexte d'analyse ? Ou applique-t-il un flux de travail - un contexte d'exécution ? L'identification des différents rôles joués par un contexte permet d'éviter le chevauchement des responsabilités.<br/>
<br/>
Jetez un coup d'œil aux [http://cyrille.martraire.com/2012/09/collaborative-construction-by-alberto-brandolini/ Archétypes de contextes délimités] d'Alberto Brandolini et aux [http://www.wirfs-brock.com/PDFs/A_Brief-Tour-of-RDD.pdf Stéréotypes de rôles d'objets] de Rebecca Wirfs-Brock pour une analyse plus approfondie de cet espace. La [https://github.com/ddd-crew/bounded-context-canvas/blob/master/resources/model-traits-worksheet.md feuille de travail Model Traits] contient des exemples de rôles générés par la communauté (Model Traits était l'ancien nom des rôles de domaine).<br/>
===Communication entrante===
La communication entrante représente les collaborations initiées par d'autres collaborateurs.
====Messages====
Les messages sont les informations qu'un collaborateur envoie à un autre. Trois types de conversation peuvent avoir lieu entre des contextes délimités. Une demande pour faire quelque chose (une commande), une demande d'information (une requête), ou une notification que quelque chose s'est produit (un événement).<br/>
<br/>
Le mot "message" est utilisé au sens général et n'est lié à aucune implémentation. Aucun bus de messages ou flux de travail asynchrone n'est obligatoire. Une commande, par exemple, peut simplement consister à afficher des données à partir d'un formulaire HTML sous la forme d'une commande HTTP POST.<br/>
====Collaborateurs====
Les collaborateurs sont d'autres systèmes ou sous-systèmes qui envoient des messages à ce contexte. Il peut s'agir d'autres contextes délimités, de frontaux (web ou mobile) ou d'autres choses.<br/>
<br/>
Si le contexte délimité possède une interface utilisateur (par exemple, un [https://martinfowler.com/articles/micro-frontends.html micro-frontend]), le type de collaborateur est l'interaction directe avec l'utilisateur.<br/>
<br/>
[[Fichier:Collaborator-types.jpeg|border|link=]]
====Type de Relation====
Le type de relation entre deux contextes délimités indique comment les modèles et les équipes s'influencent mutuellement. Pour en savoir plus sur les types de relation, reportez-vous à [https://github.com/ddd-crew/context-mapping Context Mappping].
====Organisation en couloirs de nage====
Les collaborateurs peuvent être organisés en couloirs de nage horizontaux indiquant les messages qu'ils envoient.<br/>
<br/>
[[Fichier:Collaborator-example.jpeg|border|link=|800px]]<br/>
===Communication sortante===
La communication sortante représente les collaborations initiées par ce contexte pour interagir avec d'autres collaborateurs. Les mêmes types de messages et les mêmes conventions s'appliquent que pour la communication entrante.
===Langage ubiquitaire===
Quels sont les termes clés du domaine qui existent dans ce contexte et que signifient-ils ?
===Décisions métier===
Quelles sont les principales règles et politiques métier dans ce contexte ?
===Hypothèses===
Vous ne prendrez jamais de décisions de conception en ayant une connaissance complète de tout ce qui se passe dans votre domaine. La plupart des conceptions sont basées sur des hypothèses et il est fortement recommandé de les rendre explicites. Cela peut être fait dans cette rubrique du canevas de conception du contexte délimité.
===Mesures de vérification===
Le Domain Driven Design est une approche itérative de la modélisation et de la conception basée sur l'apprentissage continu. Les mesures peuvent vous aider à recueillir des informations précieuses pour ces apprentissages (pensez à la boucle construire-mesurer-apprendre). Réfléchissez aux mesures que vous et votre équipe pouvez définir afin de savoir si les limites choisies de votre contexte délimité sont adaptées ou non.<br/>
<br/>
Vous pouvez collecter ces mesures, par exemple, à partir de :
* Vos environnements CI / CD
* Des outils comme JIRA
* De vos systèmes opérationnels
===Questions ouvertes===
Si vous avez des questions auxquelles personne dans la salle ne peut répondre au cours d'un atelier, vous pouvez les consigner dans cette rubrique du canevas. De cette manière, vous pouvez vous assurer qu'aucune question ouverte ne se perd, mais vous pouvez également obtenir un indicateur visuel du degré de certitude de l'équipe concernant la conception d'un contexte délimité donné. Un grand nombre de questions est un bon indicateur d'un degré élevé d'incertitude.
==Exemple==
==Exemple==
Ci-dessous, une version remplie du canevas de contexte délimité.<br/>
<br/>
[[Fichier:BCCanvasExample.jpg|border|link=|1000px]]<br/>
==Outils==
==Outils==
==Astuces de conception==
Voici quelques outils qui peuvent vous aider à utiliser le canevas de contexte délimité.<br/>
 
===Version HTML===
Une [https://github.com/ddd-crew/bounded-context-canvas/blob/master/tools/html-version/README.md version HTML du canevas] que vous pouvez éditer dans un navigateur et versionner dans le gestionnaire de versions avec votre code. Contribution de [https://github.com/baruica Nelson da Costa].
 
===Version Miro===
Un [https://miro.com/miroverse/category/newly-added/the-bounded-context-canvas modèle MiroHQ] gratuit du Bounded Context Canvas.<br/>
<br/>
La version actuelle du modèle sur le site Miroverse est la v4 pour le moment. En attendant, vous pouvez télécharger une [sauvegarde du tableau Miro [https://github.com/ddd-crew/bounded-context-canvas/blob/master/resources/bounded-context-canvas-v5-miro.rtb ici à partir de ce dépôt].<br/>
 
===Excalidraw Version===
Un [https://github.com/ddd-crew/bounded-context-canvas/blob/master/tools/excalidraw-version/README.md modèle Excalidraw du canevas] contenant le Bounded Context Canvas comme modèle.
 
==Conseils de conception==
En rendant visibles sur le canevas les éléments importants de la conception d'un contexte délimité, vous pouvez plus facilement la remettre en question et l'améliorer. Voici quelques conseils pour vous aider à revoir et à améliorer une conception.<br/>
 
# N'hésitez pas à créer une Pull Request pour partager vos astuces.
 
===Conseils généraux===
Faites des expériences en déplaçant un élément du canevas dans un autre contexte. Comment la conception est-elle impactée ?
 
===Conseils pour la conception de l'interface===
L'interface publique d'un contexte délimité est son contrat avec le reste du système. Les contrats ont un impact important sur les collaborateurs et sont difficiles à modifier, c'est pourquoi une bonne conception est vitale. Voici quelques conseils pour vous aider à évaluer la conception de l'interface d'un contexte délimité.<br/>
<br/>
Les noms des messages sont-ils cohérents entre eux et avec la description du contexte ?
# Chaque type de message est-il optimal (par exemple, une commande doit-elle être un événement) ?
# L'interface est-elle trop grande (trop de types de messages uniques) ?
# Le contexte expose-t-il trop d'éléments internes ?
# Certains messages semblent-ils devoir être traités ailleurs ?
 
==Ressources complémentaires==
==Ressources complémentaires==
* [https://medium.com/nick-tune-tech-strategy-blog/bounded-context-canvas-v2-simplifications-and-additions-229ed35f825f Bounded Context Canvas V3: Simplifications and Additions]
* [https://xebia.com/blog/extending-the-bounded-context-canvas-with-bdd-examples/ Extending the Bounded Context Canvas with BDD Examples]
==Traductions==
==Traductions==
Toutes les ressources sont disponibles en [https://github.com/ddd-crew/bounded-context-canvas/blob/master/translations/fr/resources français] et en [https://github.com/ddd-crew/bounded-context-canvas/blob/master/translations/pt/resources portugais].
==Contributeurs==
==Contributeurs==
Merci à [https://github.com/ddd-crew/bounded-context-canvas/graphs/contributors tous les contributeurs actuels et futurs] ainsi qu'aux personnes suivantes qui ont toutes contribué au Bounded Context Canvas :
* [https://github.com/Baasie Kenny Baas]
* [https://github.com/kim-lindhard-dfds Kim Lindhard]
* [https://github.com/mploed Michael Plöd]
* [https://twitter.com/__maxs__ Maxime Sanglan-Charlier]
Le [https://www.strategyzer.com/canvas/business-model-canvas Business Model Canvas] a été une source d'inspiration importante pour le Bounded Context Canvas.
==Contributions et feedbacks==
==Contributions et feedbacks==
Le canevas de contexte délimité est mis gratuitement à votre disposition. En outre, vos feedbacks et vos idées sont les bienvenus pour améliorer le canevas ou pour créer de nouvelles versions.<br/>
<br/>
N'hésitez pas à nous envoyer une pull request avec vos exemples ou de nouvelles traductions.<br/>
<br/>
[http://creativecommons.org/licenses/by/4.0/ CC BY 4.0]<br/>
<br/>
Ce travail est placé sous une [http://creativecommons.org/licenses/by/4.0/ Licence Creative Commons Attribution 4.0 International].<br/>
<br/>
[http://creativecommons.org/licenses/by/4.0/ CC BY 4.0]

Dernière version du 30 juin 2023 à 09:35

Auteurs : Contributeurs ainsi que Kenny Baas, Kim Lindhard, Michael Plöd, Maxime Sanglan-Charlier
Source : The Bounded Context Canvas
Date : 21/05/2023


Traducteur : Fabrice Aimetti
Date : 30/06/2023


Traduction :

Le Bounded Context Canvas est un outil collaboratif permettant de concevoir et de documenter la conception d'un unique contexte délimité (bounded context).

Si vous ne savez pas ce qu'est un contexte délimité, vous pouvez vous reporter au manuel DDD Reference d'Eric Evans et à l'article de Martin Fowler.

Le canevas vous guide tout au long du processus de conception d'un contexte délimité en vous demandant de prendre en compte et de faire des choix sur les éléments clés de sa conception, du nommage aux responsabilités, en passant par son interface publique et ses dépendances.



Téléchargez le canevas vierge


Comment l'utiliser

Pour commencer rapidement avec le canevas de contexte délimité, complétez le canevas dans l'ordre où les rubriques sont présentées dans le chapitre Définition des rubriques.

Commencez par le nom et la description du canevas afin de clarifier sa raison d'être et ses principales responsabilités en une phrase ou deux. Vous pouvez ensuite remplir les autres rubriques du canevas dans n'importe quel ordre. Vous pouvez concevoir le canevas de l'extérieur vers l'intérieur en commençant par la communication entrante ou de l'intérieur vers l'extérieur en commençant par les règles métier et le langage du domaine.

Il se peut que vous ne disposiez pas de toutes les informations nécessaires pour compléter certaines rubriques du canevas. Dans ce cas, vous devrez utiliser d'autres techniques de modélisation pour trouver les informations dont vous avez besoin.

Formats alternatifs

Le format par défaut du canevas Bounded Context présenté ci-dessus n'est pas le seul disponible, vous en trouverez d'autres ci-dessous. N'hésitez pas à expérimenter de nouveaux formats.

Couloirs de nage des cas d'utilisation : ce style organise la rubrique "communication" en couloirs de nage montrant la séquence dans laquelle les interactions se produisent en utilisant le format suivant : message entrant -> décision(s) prise(s) -> message(s) sortant(s).

Définition des rubriques

Voici une brève explication de chaque rubrique du canevas.

Nom

Il est difficile de donner un nom. Le fait d'écrire le nom de votre contexte et d'obtenir l'accord de l'équipe orientera la manière dont vous concevrez le contexte.

Objectif

Quelques phrases décrivant le pourquoi et le quoi du contexte en langage métier. Aucun détail technique à ce stade.

La rédaction de l'objectif vous oblige à formuler clairement des idées imprécises et à veiller à ce que tous les membres de l'équipe soient sur la même longueur d'onde.

Décrivez l'objectif d'un point de vue métier, vous pouvez également nommer les acteurs clés pour lesquels le contexte délimité apporte de la valeur.

Classification stratégique

Quelle est l'importance de ce contexte pour le succès de votre organisation ?

  • domaine principal : une initiative stratégique clé
  • domaine support : nécessaire mais pas un facteur de différenciation
  • domaine générique : une capacité commune que l'on retrouve dans de nombreux domaines


Quel rôle le contexte joue-t-il dans votre modèle d'entreprise ?

  • générateur de revenus : les gens paient directement pour cela
  • générateur d'engagement : les utilisateurs l'apprécient mais ne paient pas pour cela
  • générateur de conformité : protège la notoriété et l'existence de l'entreprise.


L'évolution du concept (voir les Cartes de Wardley) :

  • genèse : nouveau domaine inexploré
  • sur mesure : les entreprises construisent leurs propres versions
  • produit : des versions prêtes à l'emploi existent et offrent une certaine différenciation
  • produit de base : il existe des versions hautement standardisées.
Pour une description détaillée de la genèse, du sur-mesure, du produit de base, voir les définitions dans les Évolutions des Cartes de Wardley.

Pour obtenir de l'aide pour remplir cette section du canevas, voir les Diagrammes des Domaines de base (Core Domain Charts).

Rôles du domaine

Comment pouvez-vous caractériser le comportement de ce contexte délimité ? Reçoit-il de gros volumes de données et les analyse-t-il pour en tirer des enseignements - un contexte d'analyse ? Ou applique-t-il un flux de travail - un contexte d'exécution ? L'identification des différents rôles joués par un contexte permet d'éviter le chevauchement des responsabilités.

Jetez un coup d'œil aux Archétypes de contextes délimités d'Alberto Brandolini et aux Stéréotypes de rôles d'objets de Rebecca Wirfs-Brock pour une analyse plus approfondie de cet espace. La feuille de travail Model Traits contient des exemples de rôles générés par la communauté (Model Traits était l'ancien nom des rôles de domaine).

Communication entrante

La communication entrante représente les collaborations initiées par d'autres collaborateurs.

Messages

Les messages sont les informations qu'un collaborateur envoie à un autre. Trois types de conversation peuvent avoir lieu entre des contextes délimités. Une demande pour faire quelque chose (une commande), une demande d'information (une requête), ou une notification que quelque chose s'est produit (un événement).

Le mot "message" est utilisé au sens général et n'est lié à aucune implémentation. Aucun bus de messages ou flux de travail asynchrone n'est obligatoire. Une commande, par exemple, peut simplement consister à afficher des données à partir d'un formulaire HTML sous la forme d'une commande HTTP POST.

Collaborateurs

Les collaborateurs sont d'autres systèmes ou sous-systèmes qui envoient des messages à ce contexte. Il peut s'agir d'autres contextes délimités, de frontaux (web ou mobile) ou d'autres choses.

Si le contexte délimité possède une interface utilisateur (par exemple, un micro-frontend), le type de collaborateur est l'interaction directe avec l'utilisateur.

Type de Relation

Le type de relation entre deux contextes délimités indique comment les modèles et les équipes s'influencent mutuellement. Pour en savoir plus sur les types de relation, reportez-vous à Context Mappping.

Organisation en couloirs de nage

Les collaborateurs peuvent être organisés en couloirs de nage horizontaux indiquant les messages qu'ils envoient.


Communication sortante

La communication sortante représente les collaborations initiées par ce contexte pour interagir avec d'autres collaborateurs. Les mêmes types de messages et les mêmes conventions s'appliquent que pour la communication entrante.

Langage ubiquitaire

Quels sont les termes clés du domaine qui existent dans ce contexte et que signifient-ils ?

Décisions métier

Quelles sont les principales règles et politiques métier dans ce contexte ?

Hypothèses

Vous ne prendrez jamais de décisions de conception en ayant une connaissance complète de tout ce qui se passe dans votre domaine. La plupart des conceptions sont basées sur des hypothèses et il est fortement recommandé de les rendre explicites. Cela peut être fait dans cette rubrique du canevas de conception du contexte délimité.

Mesures de vérification

Le Domain Driven Design est une approche itérative de la modélisation et de la conception basée sur l'apprentissage continu. Les mesures peuvent vous aider à recueillir des informations précieuses pour ces apprentissages (pensez à la boucle construire-mesurer-apprendre). Réfléchissez aux mesures que vous et votre équipe pouvez définir afin de savoir si les limites choisies de votre contexte délimité sont adaptées ou non.

Vous pouvez collecter ces mesures, par exemple, à partir de :

  • Vos environnements CI / CD
  • Des outils comme JIRA
  • De vos systèmes opérationnels

Questions ouvertes

Si vous avez des questions auxquelles personne dans la salle ne peut répondre au cours d'un atelier, vous pouvez les consigner dans cette rubrique du canevas. De cette manière, vous pouvez vous assurer qu'aucune question ouverte ne se perd, mais vous pouvez également obtenir un indicateur visuel du degré de certitude de l'équipe concernant la conception d'un contexte délimité donné. Un grand nombre de questions est un bon indicateur d'un degré élevé d'incertitude.

Exemple

Ci-dessous, une version remplie du canevas de contexte délimité.


Outils

Voici quelques outils qui peuvent vous aider à utiliser le canevas de contexte délimité.

Version HTML

Une version HTML du canevas que vous pouvez éditer dans un navigateur et versionner dans le gestionnaire de versions avec votre code. Contribution de Nelson da Costa.

Version Miro

Un modèle MiroHQ gratuit du Bounded Context Canvas.

La version actuelle du modèle sur le site Miroverse est la v4 pour le moment. En attendant, vous pouvez télécharger une [sauvegarde du tableau Miro ici à partir de ce dépôt.

Excalidraw Version

Un modèle Excalidraw du canevas contenant le Bounded Context Canvas comme modèle.

Conseils de conception

En rendant visibles sur le canevas les éléments importants de la conception d'un contexte délimité, vous pouvez plus facilement la remettre en question et l'améliorer. Voici quelques conseils pour vous aider à revoir et à améliorer une conception.

  1. N'hésitez pas à créer une Pull Request pour partager vos astuces.

Conseils généraux

Faites des expériences en déplaçant un élément du canevas dans un autre contexte. Comment la conception est-elle impactée ?

Conseils pour la conception de l'interface

L'interface publique d'un contexte délimité est son contrat avec le reste du système. Les contrats ont un impact important sur les collaborateurs et sont difficiles à modifier, c'est pourquoi une bonne conception est vitale. Voici quelques conseils pour vous aider à évaluer la conception de l'interface d'un contexte délimité.

Les noms des messages sont-ils cohérents entre eux et avec la description du contexte ?

  1. Chaque type de message est-il optimal (par exemple, une commande doit-elle être un événement) ?
  2. L'interface est-elle trop grande (trop de types de messages uniques) ?
  3. Le contexte expose-t-il trop d'éléments internes ?
  4. Certains messages semblent-ils devoir être traités ailleurs ?

Ressources complémentaires

Traductions

Toutes les ressources sont disponibles en français et en portugais.

Contributeurs

Merci à tous les contributeurs actuels et futurs ainsi qu'aux personnes suivantes qui ont toutes contribué au Bounded Context Canvas :

Le Business Model Canvas a été une source d'inspiration importante pour le Bounded Context Canvas.

Contributions et feedbacks

Le canevas de contexte délimité est mis gratuitement à votre disposition. En outre, vos feedbacks et vos idées sont les bienvenus pour améliorer le canevas ou pour créer de nouvelles versions.

N'hésitez pas à nous envoyer une pull request avec vos exemples ou de nouvelles traductions.

CC BY 4.0

Ce travail est placé sous une Licence Creative Commons Attribution 4.0 International.

CC BY 4.0