Kontrowersyjny esej o kodzie czytelnym, część 2: VAR
Słowo kluczowe
var jest sposobem na uniknięcie długich nazw typów podczas deklarowania zmiennych lokalnych. Dzięki niemu unikamy dwukrotnej specyfikacji typu, co może być przydatne w np. wypadku deklarowania zmiennej typu
Dictionary<string, Dictionary<string, int>>.
Czy długie nazwy typów są naprawdę nieuniknione? Czy słownik słowników to dobry typ dla zmiennej lokalnej? Jeśli deklarujemy zmienną będącą złożeniem dwóch kolekcji, potrzebujemy umieścić gdzieś logikę odpowiedzialną za
manipulowanie nią. Zwykle robimy to w jakichś prywatnych metodach. Zamiast tego, stwórzmy
nowy typ opakowujący nasze skomplikowane złożenie i nadajmy mu prostą nazwę – na tyle krótką, aby dwukrotne jej umieszczenie w deklaracji zmiennej nie było bolesne.
Jeśli jednak jesteśmy fanami
var – OK. Jeśli takie są standardy kodowania w Twoim zespole – OK. Pamiętaj tylko o jednym: stosowanie
var przy deklaracji zmiennej której wartość początkowa jest wynikiem wywołania metody
bardzo zmniejsza czytelność kodu. Skąd ktoś ma wiedzieć jakiego typu jest zmienna result, jeśli jej deklaracja wygląda tak:
var result = GetSomethingFromSomePlace()? Tu dochodzimy do jednej z pozytywnych cech słowa kluczowego
var. Jest nią według mnie bezlitosne eksponowanie problemu
nic nie mówiących nazwy zmiennych. O ile moje dywagacje na temat
var są wyrazem moich osobistych subiektywnych odczuć, o tyle plaga bezmyślnego nazywania elementów kodu jest bezdysusyjnie zła i jako taka powinna być tępiona z całą stanowczością.