de&&bug 2.0

de&&bug 2.0

Assolutamente geniale, quanto divertente, la soluzione proposta da

[!] Ci sono problemi con l’autore. Controllare il mapping sull’Author Manager

per effettuare debug in modo semplice, semantico e senza spreco eccessivo di risorse o senza aumentare in modo consistente la velocità di esecuzione del codice.

Partiamo da questo “suo” presupposto:

Trace messages is my number one debugging tool

praticamente inopinabile se avete mai avuto a che fare con JavaScript, ActionScript o altri linguaggi ancora dove al posto di un trace, o di un alert, avete stampato in console le informazioni in quel punto o nell’altro.

Il modo è semplice e indolore, purché il linguaggio supporti l’operatore && (AND “progressivo”).

Il succo è utilizare una variabile globale denominata de, dal valore possibilmente booleano, che seguita dall’AND e dalla funzione globale bug, permette all’interprete di valutare il primo valore e, se vero, di richiamare la funzione in esame.

Eccovi un piccolo esempio:


var de = true, // false se non si vuole il debug
bug = function(){console.log.apply(this, arguments)};
// o banalmente per maggior compatibilità:
// bug = alert

A questo punto, in qualunque parte del codice, potrete scrivere:


de&&bug("Property value:" + obj.propName);

e ritrovarvi nei logs, oppure in dialog, tutte le informazioni che volete.

Non è al limite del divertente?

Vediamo qualche altro esempio con qualche altro linguaggio:

  • ActionScript

    var de:Boolean = true,
    bug = function(Void):Void {
    trace.apply(this, arguments);
    };
    // test
    de&&bug("Hello World");
  • PHP

    define('de', true);
    function bug(){
    $output = '';
    foreach(func_get_args() as $argument)
    $output .= $argument;
    echo $output."rn";
    }
    // test
    de&&bug("Hello World");
  • Python

    class bug:
    def __call__(self,*args):
    if de:
    print("".join(args))
    de = True
    bug = bug()
    # test
    de>bug("Hello World")

    … o perchè no …


    class de:
    __debug = True
    def bug(self, *args):
    if(self.__debug):
    print("".join(args))
    de = de()
    # test
    de.bug("Hello World")

… cosa ne pensate, vale la pena di introdurre questo facile e veloce metodo di controllare i dati nel vostro prossimo applicativo Web?

Ah beh, se non siete ancora convinti provate a dare un’occhiata anche agli

[!] Ci sono problemi con l’autore. Controllare il mapping sull’Author Manager

, tutti rigorosamente JavaScript!

Questo articolo contiene link di affiliazione: acquisti o ordini effettuati tramite tali link permetteranno al nostro sito di ricevere una commissione nel rispetto del codice etico. Le offerte potrebbero subire variazioni di prezzo dopo la pubblicazione.

Ti consigliamo anche

Link copiato negli appunti