Salut les développeurs Gladys
Le projet « frontend » de Gladys 4 a été créé en 2018/2019, et certain points de la configuration deviennent vieillissant/plus adapté avec le recul.
J’aimerais qu’on discute ensemble des différentes choses qui peuvent être mise à jour pour que le code soit plus au goût du jour, et pour itérer sur ce qui a marché/pas bien marché dans le frontend.
Mettre à jour ESLint
Mettre à jour la configuration ESLint pour autoriser les dernières améliorations JS ES2023 (opérateur ?. par exemple, on en parlait avec @bertrandda sur sa dernière PR)
Ca me fait penser qu’il faudrait le faire sur le backend aussi car certaines erreurs liés à JSDoc sont impossible à comprendre, et dans une version plus récente c’est beaucoup plus compréhensibles !
Stopper l’utilisation des décorators @connect
utilisé par unistore
C’était la mode à l’époque et au final unistore ne le recommande plus, c’était un « hack » autorisé par le transpiler, je ne crois même pas que ce soit dans la spec JS en 2023.
Fini :
Maintenant :
Il faut que j’ajoute une règle ESLint pour bannir ce comportement.
Restreindre grandement l’utilisation du store global unistore
Je l’avoue, c’est de ma faute, au début de la v4 je pensais qu’un store global serait une bonne idée, sûrement par manque d’expérience à l’époque en développement front React. Le résultat : on a eu de nombreux bugs liés au store global, car forcément des variables se polluaient entre elle inter-components.
Ma recommandation: Limiter l’utilisation du store aux variables « globales »: user, session, httpClient, et c’est tout.
Le reste doit être des states de classe, local à la classe. ça évite la pollution entre components.
De même, il faudrait voir si ESLint pourrait nous aider à prévenir le développeur.
Unification du comportement des styles
Le styling dans le frontend n’a pas nécessairement été enforce au niveau eslint, et c’est une erreur à mon sens.
Certains components utilisent du style inline (style={{}}
), ce qui est une mauvaise pratique en terme de performance car un objet est re-créé à chaque render.
Aussi, ces styles sont difficilement modifiable pour gérer le responsive.
Ma recommandation: des fichiers de style en .css (un pour chaque feature en gros), qui sont importés dans le component.
Les media queries deviennent possible et permettent de gérer les petits/grands devices:
Plus de règles ESLint pour accélérer les reviews de PR
Je me suis rendu compte en faisant la review de la dernière PR de @bertrandda que je faisais souvent les mêmes remarques sur le code front dans les PRs (attention aux fonctions inline, style inline, etc…), et que ces feedbacks pourraient être dans ESLint pour que les reviews aillent plus vite
@contributors : Qu’en pensez-vous ? D’autres retours sur le frontend ?