Follow

Ça aura été une semaine productive ! la pénulténième réécriture de est finie : cette fois-ci, c'est une réécriture complète en TypeScript côté client, en utilisant les hooks de React au passage.

framagit.org/kresusapp/kresus/

bon, bah s'il fallait recommencer :

- j'utiliserai Typescript dés le début, vraiment les projets de plus de 1000 lignes de code devraient pas être faits avec des langages typés dynamiquement :p
- j'utiliserai pas React. Même les hooks sont censés être une simplification pour que les composants soient plus déclaratifs, mais c'est trop facile de se tirer une balle dans le pied avec, et de faire les mauvais choix. Donc Svelte ou Vue, mais pas React, pour le futur.

@bnjbvr Intéressant.

Typescript, je dois avouer, j'ai dû mal : je trouve qu'il y a trop de configuration possible pour un langage, des sucres syntaxiques chelous (déclarations de champs dans la signature du constructeur par ex), des concepts objets qui vont pas suffisamment loin (polymorphisme par type de paramètres inexistant), et ça alourdit pas mal le node_modules. En venant du monde JS, je suis assez perdu.

Mais c'est peut-être moi…

PS : c'est pas le typage qui me dérange, loin de là.

@bnjbvr tu parles de quoi en disant "se tirer une balle dans le pied avec les hooks" ? Je suis curieux, je ne suis vraiment pas fan de react mais je n'arrive pas à mettre le doigt sur le pourquoi :/

@magopian si tu fais pas gaffe, tu peux facilement oublier un `useCallback` et faire que ton composant se re-render de zéro à chaque instanciation (ce qui cause un render des enfants, récursivement). Il est possible de mettre en place du lint avec eslint pour éviter ça, mais c'est très spécifique et piégeux.

Un autre problème, conjointement avec l'utilisation de Redux : le "zombie child" : kaihao.dev/posts/Stale-props-a

@magopian le problème du zombie child est apparu à plusieurs reprises dans ce refactoring de Kresus, et il m'a fallu du temps avant d'imaginer que ça pouvait être un problème d'utilisation de la lib.

Sign in to participate in the conversation
TUTUT DELIRE PARTY

The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!