debugging contro “instrumenting”

mercoledì 25 luglio 2007 alle 25:47 | Pubblicato su Diario, PL/SQL | 1 commento

Oggi cercando sul blog di Thomas Kyte un’informazione mi sono imbattuto in un suo vecchio post in cui mi sono identificato, nella mia lotta contro il resto del mondo. Io non sono un programmatore a tempo pieno, forse non sono un bravo programmatore, però ho programmato, in pascal, in c, in java, in php ed ora in PL/SQL. Avendo io probabilmente una mentalità retrograda non riesco a condividere l’entusiasmo che ha la stragrande maggioranza dei programmatori (almeno nella mia azienda) ogni tre mesi quando aggiorna l’IDE. Non condivido affatto l’esigenza assoluta di programmare sempre con il debugger attivo. Sono rimasto colpito leggendo le prime righe del post di Tom perchè anche io non uso debugger da quando neanche me lo ricordo. Non vorrei adesso passare per megalomane paragonandomi a Thomas Kyte, voglio solo esprimere il mio conforto nel trovare che le mie posizioni al riguardo forse non sono così sballate e retrograde. Faccio notare che a sua volta Tom fa riferimento a un post di Linus Torvalds (per i windowsiani che non lo conoscono è “l’inventore” di Linux).

Thomas Kyte sostiene la pratica di “attrezzare” il codice piuttosto che l’uso del debugger. Con il termine “attrezzare” cerco di tradurre il termine “instrumenting” ovvero la tecnica di aggiungere al proprio codice del codice che permetta di tracciare più o meno accuratamente l’esecuzione del programma per poter capire cosa fa e quanto ci mette. Quello che in pratica Oracle ha fatto con la famosa Wait Interface.

Secondo Tom usare il debugger significa saltare da un passo di esecuzione all’altro aspettando di trovare l’errore. In questo modo egli dice si può trovare un errore ma ne possono sfuggire altri 500. Invece, attrezzando ben bene il codice si possono indentificare molti problemi (magari tutti) e in seguito anche tracciare eventuali problemi di prestazioni.

Nella mia esperienza tutte le argomentazioni riportate da Tom si rafforzano quando si parla di programmazione PL/SQL. Basti pensare che più volte mi è capitato che, probabilmente a causa di bachi nel debugger, il debugger stesso si piantasse, lasciando dei lock sul database che non sono riuscito a rilasciare se non riavviando l’intero database. Io ho fatto tesoro di queste esperienze e di quanto predicato da Thomas kyte, anche sul suo libro e in quest’altro post ed ho imparato ad investire una parte degli sforzi di programmazione nell’attrezzare i programmi che scrivo.

1 commento »

RSS feed for comments on this post. TrackBack URI

  1. […] Archivio ← debugging contro “instrumenting” […]


Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

Blog su WordPress.com.
Entries e commenti feeds.

%d blogger cliccano Mi Piace per questo: