Quando ispeziono manualmente un codice sconosciuto (da rivedere o modificare), mi sembra di avere tre opzioni.
- Una lettura dall'alto verso il basso del codice, scegliendo ogni prossimo file sorgente in base a quanto fondamentale appare il nome del file. Di solito finisco per leggere quasi tutto. Alcuni file due volte.
- Una prima lettura , in cui trovo e leggo tutto il metodo di invocazione con una comprensione minima. Quindi leggi tutte le funzioni chiamate dalla funzione e così via. Il mio stack mentale tende a traboccare se faccio qualche chiamata in profondità.
- Una prima lettura approfondita , in cui passo attraverso tutto il codice in un debugger, incerto se ciò richiederà 8 minuti o 8 ore.
Una volta che ho letto abbastanza del codice per avere una comprensione abbastanza solida di ciò che sta facendo, spesso rifletto di aver letto l'80% o più della base di codice, mentre il codice fondamentale è del 20% o meno . Ho perso molto tempo.
Quali strumenti sono utili per ottenere una rapida comprensione di codice non familiare? Esistono strumenti in grado di fornire una "visione d'insieme" del percorso del codice critico e che mi consenta di approfondire i dettagli di una parte?