10 febbraio 2009

Stile del codice - il prefisso 'm_'

Nel corso di anni di lavoro su codice legacy C++ ho mantenuto per tanto tempo la convenzione (o cattiva abitudine) di inserire il prefisso 'm_' all'inizio dei nomi delle variabili dichiarate come membro di una classe. Con il tempo, per fortuna, mi sono convertito, specialmente nel codice C#, a sostituire il prefisso 'm_' con un più leggibile 'this.'. A prima vista scrivere 'this.Name' invece di 'm_Name' sembra uno stile più prolisso ma, oltre ad essere effettivamente più chiaro da leggere, ha diversi vantaggi che aiutano a migliorare la qualità del codice. Prima di tutto, utilizzando la sintassi del linguaggio, questo prefisso impedisce di sbagliare: sia l'IDE che il compilatore verificano che non sia possibile scrivere 'this.Name' su una variabile locale, globale o statica. Per lo stesso motivo, è comune che la funzione di auto completamento dell'IDE sia in grado di proporre immediatamente, dopo aver digitato 'this.', una lista di metodi, variabili e proprietà membro della classe corrente, aiutando così la scrittura veloce del codice. Come appena accennato, inoltre, il 'this.' è applicabile sia a metodi che a variabili che a proprietà, questo indipendentemente dal loro nome effettivo. Ed ecco che l'uso della convenzione 'm_' va a finire nel dimenticatoio, senza rimpianti ...

5 commenti:

  1. Io sono ancora combattuto per quanto riguarda il C++. Dopo una breve parentesi col prefisso m_ ora son passato al postfisso _ per le variabili.

    Probabilmente perchè in C++ il this è un puntatore e quindi tocca usare l'operatore -> che non mi piace granchè. ^^

    In C# invece uso tranquillamente this. e tanti saluti! :D

    PS: non so se è un problema mio, ma l'unico modo per postare un commento sul tuo blog è passare per l'anteprima. Altrimenti non esce l'immagine CAPTCHA.
    Ciau!

    RispondiElimina
  2. Fortunatamente in questo periodo sto sviluppando solo in C# :)

    Per quanto riguarda il C++ credo che rimarrò sul vecchio standard, almeno per il codice legacy, anche a me non piace molto l'idea di un this-> ...

    RispondiElimina
  3. Nota sul messaggio - ho provato la tua sequenza: il CAPTCHA viene fuori come popup nel momento in cui premo 'Posta Commento' .. a questo punto forse dipende dal browser ..

    RispondiElimina
  4. Mi sa che è colpa di Safari. LOL. :D

    RispondiElimina

Perchè non lasciare un commento intelligente ? Si accetta di tutto a parte lo spam e le volgarità ..