Retour à la leçonMission
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.