Quando eseguo manualmente l'ispezione di codice non familiare (da esaminare o modificare), mi sembra di avere tre opzioni.
- Una lettura dall'alto del codice, scegliendo ogni successivo file di origine in base all'aspetto fondamentale del nome file. Di solito finisco per leggere quasi tutto. Alcuni file due volte.
- Una lettura di ampiezza , dove trovo e leggo tutto il metodo di invocazione con una comprensione minima. Quindi leggi tutte le funzioni richiamate dalla funzione e così via. Il mio stack mentale tende a traboccare se faccio qualche chiamata in profondità.
- Una lettura approfondita , in cui passo tutto il codice in un debugger, incerto se ciò richiederà 8 minuti o 8 ore.
Una volta letto abbastanza del codice per avere una comprensione abbastanza solida di ciò che sta facendo, rifletto spesso che ho letto l'80% o più del codebase, mentre il codice fondamentale è del 20% o meno . Ho perso un sacco di tempo.
Quali strumenti sono utili per ottenere una rapida comprensione del codice non adatto? Esistono strumenti in grado di dare una "immagine grande" del percorso critico del codice e permettermi di approfondire i dettagli di una qualsiasi parte?