diff --git a/references.bib b/references.bib index 994a747..39c1fdb 100644 --- a/references.bib +++ b/references.bib @@ -30,3 +30,20 @@ year={2008}, organization={IEEE} } + +@misc{handlebars, + author={Yehuda Katz}, + title={Handlebars}, + howpublished="\url{https://handlebarsjs.com/}", + year=2023, + note="[En ligne; accédé le 01 Février 2023]" +} + +@misc{mustache, + author={Chris Wanstrath}, + title={mustache - Logic-less templates}, + howpublished="\url{https://mustache.github.io/mustache.5.html}", + year=2014, + month=04, + note="[En ligne; accédé le 01 Février 2023]" +} diff --git a/report.tex b/report.tex index 6cdbd53..7c638b9 100644 --- a/report.tex +++ b/report.tex @@ -417,6 +417,38 @@ Il est aussi plus simple de tester du code organisé de la manière suivante, ca \label{nestjs2} \end{figure} +\subsubsection{Système d'envoi de mail} + +On m'a donné en début de stage la tâche d'implémenter un système d'envoi de mail pour \entity{Mint Service}. +Ce système prend la forme de plusieurs librairies, qui doit remplir les conditions suivantes: + +\begin{itemize} + \item Il doit être facilement réutilisable dans d'autres projets. + \item Il doit permettre de changer de fournisseur de service pour l'envoi d'emails sans devoir faire de grands changements du côté des utilisateurs de la librairie. + \item Il doit pouvoir envoyer des emails qui s'affichent de la manière voulue sur la majorités des boîtes mail. + \item Il doit pouvoir envoyer des emails contenant des informations sur l'utilisateur. + \item Il doit permettre de décrire le contenu des emails d'une manière facilement maintenable et réutilisable. +\end{itemize} + +Mon travail a commencé par l'analyse de différentes solutions permettant d'adresser les deux dernières conditions. + +Par le passé, l'entreprise avait déjà utilisé le moteur \entity{handlebars}, +une librairie de recherche et de remplacement de texte, qui permet d'avoir des formes simples de logique, +comme des conditions ou des boucles. + +Bien que \entity{handlebars} fonctionne bien pour insérer les informations de l'utilisateur dans les mails, +il ne permet pas de facilement réutiliser du code, qui est souvent complexe afin d'assurer un bon affiche sur les +différents programmes de boîte mail. + +J'ai donc cherché à avoir un système de \og composants \fg dans la solution choisie: +ces composants doivent pouvoir être appelés avec différentes valeurs en arguments, +et doivent pouvoir appeler d'autres composants, +permettant ainsi de créer des couches d'abstraction afin de plus rapidement résoudre des problèmes, +et de réutiliser ces abstractions dans des nouveaux contextes. + +% TODO: source sur search and replace +J'ai selectionné deux moteurs de recherche et de remplacement de texte (\term{Search and Replace}): \entity{handlebars} \cite{handlebars} et \entity{mustache} \cite{mustache}. + \newpage \bibliographystyle{plain}