</AS>

Aleix Soler

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.