Lors de l'inspection manuelle du code inconnu (à réviser ou à modifier), il me semble avoir trois options.
- Une lecture descendante du code, en choisissant chaque fichier source suivant en fonction de la nature fondamentale du nom de fichier. Je finis généralement par lire presque tout. Certains fichiers deux fois.
- Une lecture en largeur , où je trouve et lis toute la méthode d'invocation avec une compréhension minimale. Lisez ensuite toutes les fonctions appelées par la fonction, etc. Ma pile mentale a tendance à déborder si je fais quelques appels profonds.
- Une lecture en profondeur , où je passe en revue tout le code dans un débogueur, incertain de savoir si cela prendra 8 minutes ou 8 heures.
Une fois que j'ai lu suffisamment de code pour avoir une compréhension assez solide de ce qu'il fait, je pense souvent que j'ai lu 80% ou plus de la base de code, tandis que le code fondamental est de 20% ou moins . J'ai perdu beaucoup de temps.
Quels outils sont utiles pour obtenir une compréhension rapide du code non familier? Y a-t-il des outils qui peuvent donner une "vue d'ensemble" du chemin de code critique et me permettre de descendre dans les détails de n'importe quelle partie?