Come leggi il codice?

 

Quando c'è mettere mano a codice scrito da altri, o anche vedere e capire un programma open-source qual'e la strada migliore per capire il codice?

leggere il sorgente in forma statica (leggi namespace, classi, metodi, dipendenze, algoritmi, assembly, schema del db, vincoli di integrità referenziale e altri constraint, etc)

o guardare il comportamento dinamico del sw in esecuzione (le funzioni esposte all'utente e quello che fanno, i dati che scrivono, il flusso di esecuzione con cui gli oggetti si chiamano in sequenza temporale, l'esecuzione passo passo delle istruzioni, i valori che assumono le variabili e gli argomenti)

Personalmente uso una combinazione delle 2 anche se ho una predilezione per la prima (direi 60% contro 40%). 
immagino che l'approccio usato, il mix tra le due, sia una caratteristica personale.

Sarei curioso di sapere gli altri che stile seguono e perchè ?

 

 

 

Print | posted @ lunedì 5 novembre 2007 23.49

Comments on this entry:

Gravatar # re: Come leggi il codice?
by Alessandro Ghizzardi at 05/11/2007 23.59

Mah io credo che sia imprescindibile usare entrambi.
Se devo _mettere le mani_ devo cambiare sia comportamento statico che dinamico, posso cambiare algoritmi o interazioni con l'utente. Ricostruire la catena di eventi semplicemente dal codice senza neanche dare un occhio alla visione d'insieme è "presuntuoso" secondo me, e quasi impossibile. D'altronde, "farla partire e basta" è impossibile per capire che cosa si nasconde sotto.
Io personalmente guardo molto il codice e meno come funziona, diciamo un 70/30 :)
Gravatar # re: Come leggi il codice?
by Luca Minudel at 06/11/2007 0.25

se ho capito bene associ visione d'insieme->lettura statica
Gravatar # re: Come leggi il codice?
by Roberto Valenti at 06/11/2007 0.31

Se ci sono i test guardo quelli :) altrimenti uso la seconda per la maggior parte del tempo.
Gravatar # re: Come leggi il codice?
by Luca Minudel at 06/11/2007 0.42

Roberto sempre x curiosità usando prevalentemente la seconda riesci a formarti l'immagine mentale dello schema statico (relazioni, dipendenze, organizzzione generale) del programma ?
Gravatar # re: Come leggi il codice?
by Andrea Raimondi at 06/11/2007 7.05

Io ho dovuto farlo per un progetto di dimensioni medie in Delphi(circa 60.000 righe di codice) ed ovviamente la lettura statica in quei casi non è una gran soluzione :-)

Io adotto uno stile tutto mio, perché parto dal presupposto che non devo modificarlo tutto insieme, mi basta conoscere il punto "successivo" dove dovrò modificarlo.

Quindi lo faccio partire ed esploro funzionalmente le aree che saranno sottoposte a modifica(c'è sempre una qualche finestra che - in ultima analisi - esporrà un certo pezzo di programma). Successivamente, una volta individuate le cose giuste, lo faccio andare in debug per rendermi conto di *cosa* vada effettivamente modificato e perché. Solo allora adotto una visione d'insieme, controllando e leggendo i sorgenti, aiutandomi però sempre col debug.

Ciao,

Andrea
Gravatar # re: Come leggi il codice?
by Adrian Florea at 06/11/2007 8.38

per me, dipende dalla qualita' del codice:
se il codice e' scritto bene -> lettura statica
se il codice e' scritto male -> prevale la lettura dinamica (o meglio un mix tra le due)
Gravatar # re: Come leggi il codice?
by Alessandro Ghizzardi at 06/11/2007 9.30

No associo il contrario. Visione d'insieme è secondo me il comportamento dinamico del software. Diciamo che se un software è scritto veramente bene, il comportamento dinamico è prevedibile dalla lettura statica, ma in molti casi bisogna sempre avere un occhio alla lettura dinamica pere capire esattamente che cosa sta succedendo e soprattutto, se devo modificarlo, come funziona il gioco degli incastri tra le parti (ponendo magari che debba fare modifiche a componenti visuali come usercontrol o simili)
Gravatar # re: Come leggi il codice?
by Nazareno at 06/11/2007 10.31

Io mi trovo spesso ad aver a che fare con sw di produzione/gestione che non è scritto né ad oggetti, né tantomeno molto commentato. Per cui prediligo un comèportamento statico iniziale per identificare il punto di intervento, per poi passare ad un comportamento dinamico (preponderante) per analizzare variabili e routine “dal vivo”.
Ciao Nazareno
Gravatar # re: Come leggi il codice?
by Matteo Emili at 06/11/2007 14.45

Dipende. Nella mia piccolissima esperienza di studente, finora ho adottato il metodo di lettura statico se si tratta di roba comunque ben commentata, fluida e scorrevole, oppure di roba mia, visto che riconosco ad occhio le mie "signatures" (ex.: dim a as integer) XD. Dinamico se mi serve una interpretazione "al volo" di uno spezzone di codice, specialmente con debugging step by step. Se ci sono poi i tests, beh sono molto utili ;)
Gravatar # re: Come leggi il codice?
by Luca Minudel at 07/11/2007 1.00


grazie del feedback - è una varietà sorprendente di approcci e stili

Your comment:

Title:
Name:
Email:
Website:
 
Italic Underline Blockquote Hyperlink
 
 
Please add 2 and 6 and type the answer here: