Nazywanie zmiennej jest zawsze ćwiczeniem w równoważeniu wyjątkowości i zrozumiałości. Długość nazwy jest powiązana z nimi na różne sposoby. Dłuższe nazwy łatwiej jest uczynić unikalnymi; nazwy o średniej długości są zazwyczaj bardziej zrozumiałe niż nazwy, które są zbyt krótkie lub zbyt długie.
Bardzo krótki Nazwa zmiennej jest użyteczna tylko jeśli ma za to sprawia, że zrozumiała (na przykład i
, j
, i k
dla indeksów, dx
na odległość wzdłuż osi) lub jego zakresu, który jest na tyle mały, aby wszystkie odniesienia będzie widoczna na raz (na przykład , temp
). Najgorsze nazwy zmiennych na świecie to takie t47
. („Co to znaczy i dlaczego różni się od t46
?”) Dzięki Bogu, że styl nazewnictwa przeszedł głównie przez FORTRAN, ale właśnie tutaj zakorzenione jest pragnienie dłuższych nazw zmiennych.
Jak pokazał twój oryginalny artykuł, zbyt długie nazwy są również trudne do odczytania, ponieważ subtelne różnice wewnętrzne można przeoczyć, gdy spojrzy się na kod. (Różnica między DistanceBetweenXAxisAbscissae
& DistanceBetweenYAxisAbscissae
jest bardzo trudna do szybkiego znalezienia.)
Jak wskazano wcześniej NoteToSelf, wymagania dotyczące unikalności nazwy zależą przede wszystkim od zakresu, w jakim nazwa musi być unikalna. Indeks 5-liniowej pętli może wynosić i
; indeks aktywnego rekordu przekazywanego z funkcji do funkcji powinien mieć znacznie bardziej opisową nazwę.
Zmienna lokalna dla funkcji może mieć małą opisową nazwę, jak deltaX
bez problemu. Statyczna zmienna delta X w module musi mieć nazwę, która odróżnia ten deltaX od innych deltaX w tym samym module, co czyni go dłuższym. A globalna zmienna delta X musi być unikalna we wszystkich modułach i wszystkich możliwych innych modułach, które mogą zostać utworzone, prawdopodobnie przez połączenie nazwy modułu z inną nazwą opisową. Jest to jeden z wielu problemów związanych z globals; aby były użyteczne, unikalne nazwy muszą być wystarczająco długie, aby utrudniać ich odczytanie.
:
, jak w:(){ :;:& };:
, powiedziałbym, że większość ludzi uważa, że jest całkiem zły. ;)