2025
Punt de Control de la Vida – Visualització de les Fites Clau
L'objectiu d'aquest experiment era representar visualment les fites importants de la vida d'una persona, per veure ràpidament els dies entre esdeveniments clau.
Context i Objectiu
Aquest projecte va néixer com a part de la refactorització del meu blog. Al afegir diversos subelements de navegació a la secció "About Me", com el /now i altres, vaig pensar que seria una bona idea mostrar d'una manera visual les fites importants de la meva vida que volia compartir públicament.
Procediment
Pas 1: Renderizar el diagrama
El diagrama es renderitza mitjançant un component personalitzable que fa servir un custom hook per renderitzar el gràfic amb D3. Es fan servir hooks com useCallback i useEffect per escoltar les modificacions en temps real i millorar el rendiment. Actualment, el component no escolta el redimensionament de la pantalla, però això queda pendent per a futures millores.
Curiositats
Inicialment, vaig utilitzar IA per generar els fonaments del codi en D3, ja que feia temps que no el tocava i volia agilitzar el procés. Vaig fer proves tant amb ChatGPT com amb Claude, i vaig notar que Claude generava millor codi per aquest tipus de tasques.
Tot i així, l'enfocament que proposava la IA no era del tot escalable. A mesura que anava refinant el component, vaig haver de reestructurar unes 900 línies de codi per fer-lo més net i mantenible. L'ús d'IA va ser útil per arrencar ràpidament, però al final vaig haver de dedicar temps a refactoritzar-ho per adaptar-lo a la meva manera de treballar.
⏳ Temps dedicat a l'experiment: Aproximadament 6 hores de feina, entre investigació, desenvolupament i refactorització.
Roadmap
Aquestes són funcionalitats que tinc en ment però que no he implementat encara per prioritzar altres tasques. Millores previstes:
- [ ] Mostrar un llistat de dades complementàries per donar més context al gràfic.
- [ ] Fer que els punts de control (checkpoints) siguin clicables per mostrar més informació (notes, imatges, enllaços).
- [ ] Millorar la UX del zoom, scroll i el redimensionat.
- [ ] Afegir interactivitat a la llegenda per permetre amagar categories concretes del gràfic.
- [ ] Acabar de refactoritzar el codi per publicar-lo com a component a npm, perquè altres puguin utilitzar-lo o modificar-lo.