Aller au contenu principal

ADR

02 Mars 2023

DateDécisionPrécisions
08-06-2022Utilisation de la librairie markedjsCette 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-2022Utilisation du préprocesseur sassCe 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-2022Utilisation de la librairie classnamesCette 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-2022Pattern 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-2022Sortir les fonctions utilitaires des composants pour éviter trop de logique dans le composantUn 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-2022Utilisation de cypress pour tester les moteurs de recherche, l'accès à une ressource et les formulairesDouleur rencontrer lors de monter de version de certaines libs et on sera plus sera serein lors de nos prochaines MEPs
02-12-2022Autorisation des installations des dépendances avec mise à jour du patch seulementAfin 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-2022Pas de npm run test dans les hooks gitL'exécution des tests prenant du temps, seul le linter est joué dans les git hooks
28-12-2022Mise en place de cypress sur la CI pour chaque PRSplit 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-2023Typage des composants génériquesAfin 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-2023Mise en cache des appels aux APIs Géo et AdresseNotre 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-2023Génération du sitemap.xml et robots.txtLes 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-2023Pas de tests sur le localStorage et le sessionStorage dans la fonctionnalité dépôt offre de stagemalgré 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-2023Pas d'accent dans les noms de variable, de fichier et dans le CSSCette 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-2023L'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-2023Le 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