Toglietemi tutto, ma non il mio alert!
Martedì 23 Settembre 2008 - 09:29
di Riccardo Degni

Sviluppando applicazioni con linguaggi interpretati (ovvero che necessitano di un interprete per essere azionati, non di un compilatore) come Javascript, un ostacolo non indifferente può essere rappresentato dal debugging degli errori. Senza uno specifico compilatore che ci dice dove, come, quando e perchè si è presentato un errore, questa importante fase di sviluppo può diventare molto laboriosa.
A questo scopo ci vengono in aiuto preziosi strumenti come Firebug per Firefox (e le alternative lite per il rendering sugli altri browser), il DOM Inspector di IE e la generica (e meno efficace) console degli errori e degli avvisi di ogni (o quasi) altro browser.
Ma i programmatori Javascript sanno bene che uno degli strumenti ancor oggi più utilizzati per il debug delle applicazioni è rappresentato dalla funzione globale alert.
Ciò accade perché quest’ultima è cross-browser ed è una soluzione relativamente veloce, che spesso viene utilizzata massicciamente in sostituzione di più potenti costrutti come il metodo log dell’oggetto console di Firebug.
Ovviamente una soluzione di questo tipo presenta molti punti deboli: se ad esempio invochiamo un alert per ogni iterazione di un ciclo molto lungo, prima di arrivare alla parte che ci interessa potrebbero passare minuti (l’applicazione si blocca ad ogni alert…). Se invece abbiamo un ciclo infinito l’unica soluzione che ci rimane è quella di riavviare il browser.
La mia domanda è proprio questa: secondo voi la funzione alert è ancora una valida proposta per il debug delle nostre applicazioni? Quanto la utilizzate al giorno d’oggi?
Categoria: Scripting | Permalink
Commenti
1
L’alert è praticamente la sola tecnica di debug universalmente utilizzabile.
Vanno bene tutte le altre la l’alert ed il document.write sono le due cose più utili che possano esistere.
Se javascript avesse una funzione per scrivere dei files allora le cose potrebbero essere diverse, si crea un log e via ma in mancanza di questa document.write ed alert sono insostituibili.
2
Io uso questa:
function log(str) {
if(typeof(console) == ‘undefined’) {
alert(str);
} else {
console.info(str);
}
}# - postato da giovanni battista lenoci - 23 Settembre 2008 - 10:05
3
Anche se vi fosse la possibilità di scrivere log su file testuali, penso che rimarrei comunque legato alll’uso degli alert per controlli “al volo”.
4
Beh, sicuramente in JS l’alert è molto importante, ma strumenti come Firebug sono diventati quasi fondamentali per un debug rapido.
# - postato da alessandrobondi - 23 Settembre 2008 - 10:32
5
Per fare un paragone nello sviluppo web,
Alert : Notepad = Firebug : UltraEdit32
Dove possibile si usa sempre il Firebug, strumento avanzato che facilita la vita, ma dovesse capitare un problema su un pc random senza tool avanzati bisogna pur avere una via di fuga praticabile.
# - postato da \\Dav - 23 Settembre 2008 - 10:37
6
Abbandonato da tempo a favore di console.log (per IE e Altri è sufficiente Firebug lite), non c’è davvero paragone, soprattutto quando per l’analisi del comportamento dello script non basta una semplice stringa.
# - postato da Gianluca - 23 Settembre 2008 - 10:58
7
non avete citato Dragon Fly di Opera.
cmq, rispondendo alla domanda, sì: l’uso dell’alert è ancora comodissimo per fare debugging! :)# - postato da Giacomo - 23 Settembre 2008 - 12:01
8
Personalmente credo che via via che l’attenzione migra su linguaggi interpretati o che comunque più in generale passino per una virtual machine (java, c#, python precompilato etc) tanto vale dotarsi del sistema di development test-based: altrimenti il rischio è di produrre codice alla lunga molto molto difficile da scalare e manutenere.
una possibilità in tal senso esiste anche per javascript, anche se non mi pare abbia ancora avuto un grandissimo seguito:
http://www.jsunit.net/
9
L’”alert” si usa anche nei linguaggi compilati, ma semplicemente adesso viene usato per snidare errori logici.
# - postato da maurizio - 24 Settembre 2008 - 11:44
10
Preferisco il document.title all’alert, in quanto l’alert a volte può farti perdere la testa. E poi è l’unico modo che conosco per fare del debug su IE







