Il nome di una variabile è sempre un esercizio per bilanciare l'unicità e la comprensibilità. La lunghezza del nome è correlata ad entrambi, in modi diversi. I nomi più lunghi sono più facili da rendere unici; i nomi di lunghezza media tendono ad essere più comprensibili rispetto ai nomi troppo brevi o troppo lunghi.
Un nome di variabile molto breve è utile solo se ha una cronologia che lo rende comprensibile (es. i
, j
, & k
per indici; dx
per una distanza lungo un asse) o un ambito sufficientemente piccolo per poter visualizzare tutti i riferimenti contemporaneamente (ad es. temp
). I peggiori nomi di variabili nel mondo sono cose come t47
. ("Che cosa vuol dire e perché è diverso da t46
?") Grazie al cielo, lo stile di denominazione è uscito per lo più con FORTRAN, ma è qui che viene radicato il desiderio di nomi di variabili più lunghi.
Come dimostrato dal tuo articolo originale, anche i nomi troppo lunghi sono difficili da leggere, in quanto è possibile non notare le sottili differenze interne quando si guarda il codice. (La differenza tra DistanceBetweenXAxisAbscissae
e DistanceBetweenYAxisAbscissae
è davvero difficile da raccogliere rapidamente.)
Come notato da NoteToSelf in precedenza, i requisiti per l'unicità di un nome dipendono principalmente dall'ambito il cui nome deve essere univoco. L'indice di un ciclo a 5 linee può essere i
; un indice di un record attivo passato dalla funzione alla funzione avrebbe avuto un nome molto più descrittivo.
Una variabile locale a una funzione può avere un piccolo nome descrittivo come deltaX
senza problemi. Una variabile delta X statica in un modulo deve avere un nome che distingue questo deltaX da altri deltaX nello stesso modulo, rendendolo più lungo. E una variabile delta X globale deve essere resa univoca tra tutti i moduli e tutti i possibili altri moduli che possono essere creati, probabilmente concatenando il nome del modulo all'altro nome descrittivo. Questo è uno dei molti problemi con i globals; per essere utilmente unici i nomi devono essere abbastanza lunghi da renderli difficili da leggere.