[Daily Issue] Le Naming Guideline....

... sono la base dello sviluppo...
Sono forse una delle cose piu importanti che voi possiate adoperare...

No, sul serio, non è uno scherzo.... non riesco a pensare a niente di piu serio di una corretta nomenclatura... tutto ciò di buono che possiamo fare o saper fare diventa inutilizzabile se non sappiamo dargli il giusto nome, corretto nel giusto contesto, e se non abbiamo il coraggio di cambiarlo (refactoring anyone?) nel caso diventi osboleto o scorretto.

Classi, variabili, metodi, proprietà, tutto il "mondo" dello sviluppo si disloca intorno a questo.. .eppure siamo nel 2007, molto è passato dai tempi della "niu economi" (new economy, per i non angolofoni :P)... eppure tutto continua uguale, ci sono ancora in giro masse di "consulenti" che convinti di poter servire a piene mani tazze di presunta conoscenza a tutti si mettono a scrivere un progetto ignorando, o peggio rigettando, le convenzioni di nomenclatura, di struttura e di qualsivoglia altro standard preso in considerazione dal Team....

Peggio, ignorano qualsiasi semplice regola di buon senso chiamando variabili con i nomi che giustamente sono sconsigliati dai tempi del Modula2: "p", "c", "l", "m", "k", "ciccio", "questo", "quello" "test", "temp".

Ho avuto un'esperienza insieme sconvolgente e divertente questo weekend cercando di rimettere in piedi un'applicativo gestito da uno di questi "tizi"... e fidatevi, quando alle 3 di notte vi trovate di fronte a (dopo 100 righe di codice in un metodo nel presentation layer, ovviamente)

if (p > l) { k = 0} else { return false; }
return true;

(testuali parole. Si, avete letto bene.. e si, esatto, _oltretutto_, k non viene mai usata... :P)
Potreste capire quanto lodare il dio dell'informatica per l'idea delle naming convention... oppure scoppiare a piangere e prendere il decimo caffè... com'è successo a me :P

Ma dai, vi immaginate se ognuno parlasse la sua lingua,  con i propri fonemi, e non ci fosse in giro niente per capire di che cosa si sta parlando? Ecco, esattamente quello che succede quando si mette mano ad un codice dove i metodi si chiamano "private void Doing()" o "private string parametro()" e dove nulla va come vorresti :(

Se leggendomi vi siete identificati o avete passato in produzione del codice con dentro almeno uno dei nomi che ho citato, per favore, PER FAVORE, fate un salto qui

http://msdn2.microsoft.com/en-us/library/xzf533w0(vs.71).aspx

Leggete TUTTO quello che c'è scritto, poi rileggetelo, poi andate a fare una passeggiata, cancellate tutti i vostri vecchi progetti, rileggete ancora una terza volta... e ricominciate una nuova vita :)

P.S.: Si,  ho passato una settimana _terrificante_ a causa di questo :P

Print | posted on domenica 7 ottobre 2007 23.42

Comments on this post

# re: [Daily Issue] Le Naming Guideline....

Requesting Gravatar...
Quante volte ho urlato e insultato apertamente gente che lasciava textBox1, var1, var2 e var3... fortunatamente ora non ho più a che fare con certa gentaglia...
P.S. Stracomplimenti per lo style! Fighissimo!
Left by Alessandro Scardova on ott 08, 2007 6.18

# re: [Daily Issue] Le Naming Guideline....

Requesting Gravatar...
Guarda, proprio 10 gg fa mi trovo a guardare il codice di un SDK e dico SDK per gestire una antenna RFID. Questo codice è il sorgente di un programma di esempio che viene fornito per leggere i tag dall'antenna. A parte varie sozzerie dentro che non sto a descrivere trovi variabili che si chiamano

"pippo"

sigh.

Alk.
Left by Gian Maria on ott 08, 2007 8.35

# re: [Daily Issue] Le Naming Guideline....

Requesting Gravatar...
Ah sorry, volevo aggiungere un testo che parla di questo e anche di molto altro
Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries
è veramente fatto bene e chiunque dovrebbe leggerlo.

Alk.
Left by Gian Maria on ott 08, 2007 8.36

# re: [Daily Issue] Le Naming Guideline....

Requesting Gravatar...
passi la variabile "pippo"... tempo fa ho conosciuto un tizio che chiamava le variabili con il proprio nome:

int sergio;
for(sergio = 0; sergio<100; sergio++) {}

disgustosa autocelebrazione...
Left by Andrea Boschin on ott 08, 2007 8.56

# re: [Daily Issue] Le Naming Guideline....

Requesting Gravatar...
Eheheh grazie Alessandro! :)

Per Andrea: poteva andarti peggio, pensa se si fosse chiamato gianmaria ::P
Left by Alessandro Ghizzardi on ott 08, 2007 9.24

# re: [Daily Issue] Le Naming Guideline....

Requesting Gravatar...
Sembra una cosa da WTF (WorseThanFailure)... se non lo conosci:
http://worsethanfailure.com/

;)
Left by Folletto Malefico on ott 08, 2007 10.41

# re: [Daily Issue] Le Naming Guideline....

Requesting Gravatar...
Sigh purtroppo lo conosco...

E pensare che l'ho sempre letto come si guarda un film, cioè pensando che a me non sarebbe mai successo...
:D

Devo fargli un submit ;)
Left by Alessandro Ghizzardi on ott 08, 2007 1.45

# re: [Daily Issue] Le Naming Guideline....

Requesting Gravatar...

dai commenti sembrano tutti d'accordo nel usarle.

l'esperienza che ho vissuto è che mettere d'accordo un team sull'uso di una coding convention è estremamente difficile : ognuno crede che la propria sia la migliore.

quello che farei oggi è far provare a ogni membro del team ad applicare delle proprie coding convention su un proprio progetto in modo sistematico.

entro breve capirebbe che il punto è di applicarle in automatico risparmiando il tempo di pensare riga per riga come fare in un caso o nell'altro (vado capo ? faccio una region ? lo metto all'inizio o alla fine ? ).

a quel punto avrebbe imparato che il punto non è sceglire una convenzione ma applicarla con l'automatico inserito.
Left by Luca Minudel on ott 11, 2007 1.23

# re: [Daily Issue] Le Naming Guideline....

Requesting Gravatar...
Beh Luca, sono d'accordo a metà...
L'idea di una coding convention è dare uniformità al codice, che come tutto al mondo ha bisogno di essere standard per essere compreso con maggiore facilità.

Personalmente, mi adeguo alle coding convention dell'ambiente che sto utilizzando, quindi quelle definite da microsoft o da java a seconda di quale uso (ormai per fortuna solo MS :P)...

Poi ovviamente se entro in un progetto in cui ci sono coding convention pregresse mi adatto, ma il fatto è che non si dovrebbe "sviluppareo una propria coding convention" pensando che è la migliore... ma adattarsi a quella che altri per quel particolare ambiente hanno deciso e convenuto in gruppo che sia la migliore!

Left by Alessandro Ghizzardi on ott 11, 2007 2.30

# re: [Daily Issue] Le Naming Guideline....

Requesting Gravatar...

ehmmm hai ragione, credo di aver dimenticato un pezzo.

dopo che ogniuno ha provato la propria coding e capito che non è importate scegliere la coding ma applicarla sistematicamente ...

il passo successivo sarebbe quello di sceglierne una comune e ora senza conflitti perchè tutti hanno capito che è facvile abituarsi a una piuttosto che a un'altra
Left by Luca MInudel on ott 11, 2007 7.49

# re: [Daily Issue] Le Naming Guideline....

Requesting Gravatar...
Eheh ok ora sono d'accordo :)
Left by Alessandro Ghizzardi on ott 11, 2007 8.21

Your comment:

 (will show your gravatar)
 
Please add 1 and 8 and type the answer here: