ADR
02 Mars 2023
Date | Décision | Précisions |
---|---|---|
08-06-2022 | Utilisation de la librairie markedjs | Cette librairie permet de parser du markdown et le convertir en format HTML. Nous avons fait le choix de cette librairie pour sa légèreté, sa simplicité d'utilisation, ainsi que son nombre de téléchargements hebdomadaires. |
07-07-2022 | Utilisation du préprocesseur sass | Ce préprocesseur permet d'apporter des fonctionnalités manquantes à CSS (variables, mixins, fonctions). Nous l'utilisons pour favoriser la composition dans le code. Sass est supporté par NextJS et compatible avec CSS Modules. |
15-07-2022 | Utilisation de la librairie classnames | Cette librairie utilitaire simplifie les jonctions conditionnelles de classes. Légère et populaire, nous l'utilisons notamment pour améliorer la lecture du code. |
19-07-2022 | Pattern Either pour la gestion des erreurs why either ? | Pour résumer ce pattern permet d'éviter d'être un peu perdu dans les try/catch et le suite du flow quand une exception est levé on a choisi de s'orienter sur ce pattern. Cela permet d'avoir un retour claire avec soit une bonne réponse et un résultat, soit une mauvaise réponse et une erreur. |
19-07-2022 | Sortir les fonctions utilitaires des composants pour éviter trop de logique dans le composant | Un exemple ici : récupérerLibelléDepuisValeur.utils.ts Cela permet d'édulcorer le code des composants et de tester plus facilement unitaires de la logique. |
10-11-2022 | Utilisation de cypress pour tester les moteurs de recherche, l'accès à une ressource et les formulaires | Douleur rencontrer lors de monter de version de certaines libs et on sera plus sera serein lors de nos prochaines MEPs |
02-12-2022 | Autorisation des installations des dépendances avec mise à jour du patch seulement | Afin d'éviter les mauvaises surprises avec des mises à jour de mineur sur les libraires ne respectant pas le semantic versioning (@meilisearch/instant-meilisearch), les installations de dépendances avec mises à jour de mineur ne sont plus automatiques et doivent être vérifiées manuellement. |
02-12-2022 | Pas de npm run test dans les hooks git | L'exécution des tests prenant du temps, seul le linter est joué dans les git hooks |
28-12-2022 | Mise en place de cypress sur la CI pour chaque PR | Split des githubs actions pour les tests unitaires et e2e pour gagner du temps sur la CI. Pour le moment au 29 décembre le format de sortie sur la console est très moche il faudrait voir au futur maj si ca se corrige sinon faudra bidouillé |
10-02-2023 | Typage des composants génériques | Afin d'unifier nos méthodes de typage de composants génériques (Link, Button, etc.), les interfaces de ceux-ci sont étendues avec le type React.ComponentPropsWithoutRef. Entre chevron devra figuré le nom de l'élément sur lequel le rest sera appliqué. |
21-02-2023 | Mise en cache des appels aux APIs Géo et Adresse | Notre nombre d'appels HTTP vers les API Géo et Adresse est aujourd'hui limité et cette limite est régulièrement atteinte. Afin de réduire les risques d'atteindre cette limite, nous mettons en cache le résultat des requêtes vers ces APIs. |
22-02-2023 | Génération du sitemap.xml et robots.txt | Les fichiers robots.txt et sitemap.xml ne comportant pas de logique d'affichage, leur contenu est généré côté BFF via les endpoints /robots et /sitemap . Ils sont accessibles pour les web crawlers grâce à la configuration de réécriture des routes dans /config/rewrites.js . |
02-03-2023 | Pas de tests sur le localStorage et le sessionStorage dans la fonctionnalité dépôt offre de stage | malgré les mocks de sessionStorage et localStorage les tests dans rtl ne fonctionnent pas comme attendu. La fonctionnalité sera donc testé exclusivement avec les tests end-to-end. |
25-04-2023 | Pas d'accent dans les noms de variable, de fichier et dans le CSS | Cette règle ne concerne pas le contenu des strings, comme par exemple les noms des tests ou contenu affiché. Les accents causent problème lors des checkouts ou refactors automatiques d'IntelliJ. |
25-04-2023 | L'imbrication dans le SCSS se fait par imbrication de classe (e.g. : .page { & .element {} } ou .page { & h1 {} } ). | Interdit de produire des noms de classe concaténés (e.g. : .page { &Element {} } ou .page { &__Element {} } ). |
09-05-2023 | Le préfixe des fixtures est en anglais (e.g. : anAnnonceDeLogement ). | Pour avoir un nom de fixture homogène nous avons choisi de préfixer toutes nos fixtures par a ou an |