Aller au contenu principal

Causerie : Retour sur DTO et cookie

Avant la séance (2h)

Essayez de répondre aux questions suivantes en utilisant ce que vous avez compris de ces concepts :

  • Qu'est-ce qu'un DTO?

  • Pourquoi on utilise les DTO?

  • Qui utilise les DTO?

  • Qu'est-ce qu'un cookie?

  • Qui crée et qui utilise le cookie?

  • Est-ce que la gestion des cookies est pareille partout?

Séance

Nous aurons une discussion pour répondre aux questions ci-contre. Le but est de consolider votre compréhension de ces deux concepts clés de programmation :

  • Comment sont gérés les cookies avec Springboot Security?
  • Qu'est-ce que cela a comme conséquence avec les sessions d'un usager?
  • En quoi est-ce différent ou pareil à la procédure utilisée en .net?
Exercice interactif

En équipe de 3 ou 4, étudiez les mises en situation et formulez une solution potentielle au problème.

Krypt'Eau Raideur

Vous décidez de créer un jeu. Vous souhaitez réduire le nombre de requêtes/réponses et éviter l'envoi inutile de données dans chaque requête ou réponse, entre autres pour optimiser la fluidité du jeu.

Pour jouer, les participants devront se créer un héros. Voici la classe modèle :

public class hero {
Long id;
String nom;
int generation;
int niveau;
Date dateNaissance;
String race; // orc, elfe, humain
String job; // magicien, archer, guerrier
int strength;
int agility;
int magic;
Date dateEmbauche;
String nomPoste; // explorateur, collecteur, mineur
Float salaire;
Arme monArme;
boolean enQuete;
}

Exercice 1 : Voir le héros

Votre première tâche est de créer le DTO qui permettra d'afficher les informations suivantes. Notez que l'image affichée est aléatoire.

miami

Exercice 2 : Transfer vs View Model

On veut maintenant créer une interface afin d'afficher quelques informations intéressantes. Le designer a fait un brouillon :

miami 2

Votre deuxième tâche est de créer le ou les DTO pour permettre d'afficher les informations ci-dessus. Réfléchissez à où devraient s'effectuer les calculs, de quelles informations le client a besoin, etc.

Exercice 3 : Création d'un héros

Lorsqu'un joueur se crée un nouveau héros, les actions suivantes doivent être exécutées :

  1. On crée le héros avec ses informations de base.
  2. On donne une arme au héros (toujours le Wooden Woopa Stick).
  3. On envoie le héros en quête.

Votre troisième tâche est de créer un ou des DTO de façon à réduire au maximum le nombre de requêtes/réponses.

Insta Groom

Instagroom

Vous avez eu une idée de génie : coder un compétiteur à Instagram, mais pour les gens bien groomés uniquement.

Voici votre classe de modèle :

public class profilInstaGroom {
Long id;
String nomUtilisateur;
String alias; // @blabla
String bio;
boolean estVerifie;
TypeCompte monCompte; //business, VIP, normal
Long nombreMedia;
String photoPrincipaleURL;
List<profilInstaGroom> jeFollow;
Feed feedActuel;
int scoreGrooming; //ne peut dépasser 9000
}

Psst ! Je me suis inspirée du vrai Instagram pour le modèle 😉

Exercice 4 : Boss final

On veut afficher la liste de nos comptes favoris, c'est-à-dire tous ceux que l'on suit (follow). Pour chaque compte, on a son nom d'utilisateur, son alias, sa photo, s'il est vérifié et s'il a de nouvelles publications (nombreMedia).

Écrivez le ou les DTO pour permettre cet affichage.

boss