Proč Java používá tak dlouhé názvy tříd a proměnných

30. 10. 2023 21:23 (aktualizováno) Petr Krejčí

Častokrát slyším stížnosti u lidí, kteří nejsou úplně fandové do Javy, že se v ní píší sáhodlouhé názvy tříd a proměnných. Např:

OrderService.java
ExternalOrderService.java
CsvImportOrderService.java

A k nim následně názvy instancí:

final var orderService = new OrderService();
final var externalOrderService = new ExternalOrderService();
final var csvImportOrderService = new CsvImportOrderService();

Na první pohled není člověku, co píše skripty v Pythonu, jasné, proč se něco takového děje. Důvod není úplně snadné pochopit, než se člověk dostane do praxe jako Java vývojář.

Tím hlavním důvodem je pořádek v kódu v ten moment, kdy na vyvíjené aplikaci pracuje více než jeden člověk najednou, a navíc se tato aplikace bude vyvíjet dalších řekněme 20 let a vystřídá se na ní za tu dobu klidně 15 vývojářů.

Tím je už teď řečeno vše, ne? Ale pokud ne, tak to ještě rozeberu.

Ono totiž vhodně zkrátit název něčeho není úplně jednoduché. Jednak to vyžaduje práci, druhak, a to je ten hlavní důvod, je to dost subjektivní, individuální věc. Každý má trochu jiné chutě, jak by název proměnných a tříd zkrátil. Totiž dlouhý nezkrácený název je takový konsensus napříč vývojáři, je to dohoda.

Problém s čitelností se tím navíc zlepší. Po pár letech praxe člověk zjistí, že když má aplikace 300000 řádků kódu, tak to poslední, co mu bude při čtení kódu vadit, je, že něco má dlouhé názvy. To totiž není něco, co tvoří složitost kódu – ta se luští nejhůře. Přečíst delší název proměnné moc úsilí nestojí. Delší názvy proměnné nezvyšují v 300000 řádkové aplikaci složitost, ba právě naopak, snižují jí tím, že zvyšují přehlednost.

Navíc delší názvy proměnných jsou lépe deskriptivní, což uvítá váš kolega vývojář, který bude po vás kód číst a luštit. Nemusí se zamýšlet jak byla ta či ona zkratka čehosi vlastně myšlena.

Sdílet