Publié le04/02/2021
Pour pouvoir se répérer dans une codebase complexe,
Pouvoir visualiser les liens entre les fichiers,
Visualiser les liens avec les autres services,
Visualiser l'exécution (en debug ou en temps réel)
Notre perception de seulement trois dimensions est un handicap considérable.
Deux axes pour améliorer notre exploration des codebases complexes :
Il y a longtemps je jouais à Heroes of the Storm quand j'eus soudain une révélation.
Les personnages, la carte, les mécanismes …
Tout n'était que des changements de variables.
Des points ici, des points là,
De la conversion de l'un en l'autre :
Tant les repères spatio-temporels que les
valeurs de mes caractéristiques et de mes points de dégâts
ne faisaient que se dérouler en fonction des contraintes logiques mises en place par les game designers et les développeurs.
Imaginez que la code base prennent la forme du jeu de votre choix :
Avec de l'imagination, on pourrait voir apparaître des FPS, des MOBA, des ci- des ça- comme autant de thème de votre IDE préféré.
La seule limite alors c'est garder la cohérence du gameplay et du design avec les dimensions interreliées du code (ex: réseau, données, runtime client, etc.).
Déjà s'il on pouvait enfiler un casque de VR et naviguer en trois dimensions entre les différents fichiers, ça serait intense.
Pour chaque élément présent sur un plan, et donnant naissance à de nouveaux, une arborescence en trois dimensions peut grandement soulager l'UX.
Une autre situation qui bénéficierait grandement d'une vision arborescente (ou nodale plutôt) en 3D est le réseau d'hyperliens d'un site ou d'un groupe de sites internet.
Pour bien comprendre comment éclater de multiples dimensions vers seulement une deux ou trois, je vais prendre un exemple avec un jeu que je connais bien (Civilization) :
De la vue 2D initiale on peut connecter 4 nouvelles dimensions et donc naviguer dans 6, grâce à une succession de listes et de vues de dimensions inférieures.
Avant de trouver comment percevoir de nouvelles dimensions,
adaptons-nous aux contraintes de notre petit corps de singe partiel !
Jouons à construire ces cathédrales de code, ludiques,
dans lesquelles naviguer de façon nodale.