This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
2018-2019:s3:concprogobjet:td:td1 [2018/09/07 17:51] blay [Un exemple de scénario] |
2018-2019:s3:concprogobjet:td:td1 [2018/09/07 18:51] blay |
||
---|---|---|---|
Line 18: | Line 18: | ||
===== Présentation de l'application ===== | ===== Présentation de l'application ===== | ||
- | <note>Un **Forum ** (//e.g.// Slack, Discorde) permet à un "producteur" (e.g. membre autorisé à écrire) d'envoyer des "messages" (texte, contenu multimedia, ...). | + | <note>Un **Forum ** (//e.g.// Slack, Discorde) permet à un "producteur" (e.g. membre autorisé à écrire) de poster des "messages" (texte, contenu multimedia, ...). |
Les "consommateurs" (e.g. membre) peuvent lire les messages quand ils le veulent. | Les "consommateurs" (e.g. membre) peuvent lire les messages quand ils le veulent. | ||
</note> | </note> | ||
Line 30: | Line 30: | ||
==== ENONCE ==== | ==== ENONCE ==== | ||
* Un administrateur peut créer un Forum. | * Un administrateur peut créer un Forum. | ||
- | * Des producteurs émettent des messages vers un Forum. | + | * Des producteurs postent des messages sur un Forum. |
* Des consommateurs lisent des messages sur le Forum. | * Des consommateurs lisent des messages sur le Forum. | ||
* Un producteur peut effacer des messages sur le Forum. | * Un producteur peut effacer des messages sur le Forum. | ||
Line 51: | Line 51: | ||
L'agence "oogle-stade" (//Administrateur//) crée un forum "OGCN".\\ | L'agence "oogle-stade" (//Administrateur//) crée un forum "OGCN".\\ | ||
- | Mario (//Producteur//) émet un message //WaitAndSee: "a quoi cela sert de courir?"// sur le forum "OGCN". \\ | + | Mario (//Producteur//) poste un message //WaitAndSee: "a quoi cela sert de courir?"// sur le forum "OGCN". \\ |
Walter (//Consommateur//) demande s'il y a de l'information sur le forum et obtient le message //WaitAndSee//. \\ | Walter (//Consommateur//) demande s'il y a de l'information sur le forum et obtient le message //WaitAndSee//. \\ | ||
Walter(//Consommateur//) pose la même question et obtient le même message. \\ | Walter(//Consommateur//) pose la même question et obtient le même message. \\ | ||
Alban(//Consommateur//) pose la même question et obtient le même message. \\ | Alban(//Consommateur//) pose la même question et obtient le même message. \\ | ||
- | Walter (//Producteur//) émet un message //Yes : "Tout à fait d'accord!"//. \\ | + | Walter (//Producteur//) poste un message //Yes : "Tout à fait d'accord!"//. \\ |
+ | Youcef (//Producteur//) poste un message //PFFF : "Vous rigolez?"//. \\ | ||
Les messages postés il y a plus de 30s sont détruits par "oogle-stade". | Les messages postés il y a plus de 30s sont détruits par "oogle-stade". | ||
Line 103: | Line 104: | ||
- | * {{fa>arrow-circle-right?24}} [[2018_2019:s3:concprogobjet:td:s3atd1:creationProjet|Créez un projet java]] | + | * {{fa>arrow-circle-right?24}} [[2018_2019:s3:concprogobjet:td:s3atd1:creationProjet|Créez un projet java]] comme nous l'avons vu en méthodo sans oublier le tests folder. |
Line 181: | Line 182: | ||
- {{fa>arrow-circle-right?24}} Visualiser la couverture de tests {{ :2018_2019:s3:methodo:td:coverage.png?direct&300 |}} | - {{fa>arrow-circle-right?24}} Visualiser la couverture de tests {{ :2018_2019:s3:methodo:td:coverage.png?direct&300 |}} | ||
- | Voici un exemple de code de test. | + | Voici un exemple de code de test pour Junit 4 (@BeforeEach and @BeforeAll are the JUnit 5 equivalents of @Before and @BeforeClass. These annotations were renamed with clearer names to avoid confusion.) |
<code java> | <code java> | ||
Line 216: | Line 217: | ||
- afficher le contenu des messages. | - afficher le contenu des messages. | ||
+ | Vous pouvez compléter cet exemple par l'exemple donné plus haut. | ||
Ce programme ne peut pas tourner puisque quasi rien n'est implémenté, par contre vous pouvez vous aider de votre IDE pour qu'au moins il soit "syntaxiquement" juste et créer les bonnes méthodes si elles n'existent pas déjà, ou les appeler! | Ce programme ne peut pas tourner puisque quasi rien n'est implémenté, par contre vous pouvez vous aider de votre IDE pour qu'au moins il soit "syntaxiquement" juste et créer les bonnes méthodes si elles n'existent pas déjà, ou les appeler! | ||
Line 233: | Line 235: | ||
<accordion collapsed="true"> | <accordion collapsed="true"> | ||
<panel title="Pour en savoir plus"> | <panel title="Pour en savoir plus"> | ||
- | ==== Pour aller plus loin ==== | ||
- | Un "bus à messages" s'appuie sur plusieurs design patterns 'Observeur/Observable" et plus précisément "Publish/Subscribe". Il existe aujourd'hui de nombreuses implémentations de ces systèmes permettant des communications asynchrones, où les consommateurs sont automatiquement notifiés de l'arrivée de message, où les consommateurs peuvent faire des demandes spécifiques, avec des systèmes de filtres complexes, etc. | ||
</panel> | </panel> | ||
</accordion> | </accordion> |