Retour à la leçon
Mission

Mission : un moteur de notifications multi-canal trop rigide

Refactoriser un systeme de notifications duplique en un trait partage, et choisir a bon escient entre generique et dyn Trait.

Contexte

Un systeme de notifications gere aujourd'hui deux canaux, NotifEmail et NotifSms, avec deux fonctions quasi identiques envoyer_email(n: &NotifEmail) et envoyer_sms(n: &NotifSms), chacune formatant et 'envoyant' le message de facon similaire. Le produit veut ajouter un troisieme canal, NotifPush, et surtout pouvoir stocker les trois types de notifications dans une seule file d'attente Vec a traiter dans l'ordre d'arrivee, peu importe leur canal.