Nahoru
 

Ve správném pojmenování proměnných je síla

Jedním ze základních kroků ke zlepšení se v programování je správné pojmenování všech proměnných. Díky tomu se váš kód stane výrazně čitelnějším a tím pádem se zrychlí i práce s ním. Jak ale mají názvy proměnných vypadat, aby byly co nejlepší?

Začněte jednoduchou úvahou nad tím, co je proměnná. Jedná se o jakousi krabici, do které uložíte nějaká data. Název proměnné si poté můžete představit jako nápis na víku této krabice. Co by bylo dobré na něj napsat? Nejlépe přesný obsah vnitřku. Jinými slovy, všechno, co tento box obsahuje.

Nejdůležitější je pojmenovat proměnnou tak, aby zcela a přesně popisovala entitu, kterou reprezentuje.

Efektivní technika pro vymýšlení dobrého jména, je poskládat za sebe slova, která reprezentují proměnnou. Když tedy máte proměnnou obsahující dnešní datum, nenajde se lepší název než todaysDate. Naopak názvy jako td nebo jenom date nevystihují přesně, co se uvnitř proměnné vyskytuje, a tudíž nejsou dobré. Pro lepší pochopení uvádím další příklady:

Přeškrtnuté názvy proměnných nejsou dostatečně přesné.

  • Počet řádek na stránce - linesPerPage - lpp, lines
  • Velikost hlavního obrázku - mainImgSize - mis, imgSize
  • Diskriminant - discriminant - disc, x
  • Délka předchozího videa - previousVideoLen - videoLen, len
Dbejte na preciznost názvů proměnných
Obrázek č. 1: Dbejte na preciznost názvů proměnných

Optimální délka názvu proměnné

Předchozí technika pro vytváření správných názvů má jednu vadu, na kterou jste již možná sami přišli. Při skládání názvu proměnné, která obsahuje velice specifická data, třeba počet lidí v českém olympijském týmu, se název proměnné stane velice dlouhý, v našem případě numberOfPeopleOnTheCzechOlympicTeam. Dlouhá jména se těžko píší a mohou narušit vizuální strukturu kódu.

Naopak příliš krátká jména nedokáží vystihnout přesný obsah proměnných. Jaká je tedy optimální délka názvu proměnné? Podle studie Gorla, Benander and Benander stojí nejméně úsilí ladit program, jehož názvy proměnných jsou mezi deseti až šestnácti znaky. Dle mého názoru, místo počítání znaků, lze pomocí selského rozumu odhadnout správnou délku. Níže uvádím příklady názvů, které jsou buď moc dlouhé, moc krátké nebo správné.

Moc dlouhé:

  • numberOfPeopleOnTheCzechOlympicTeam
  • numberOfSeatsOnTheStadium
  • maximumNumberOfPointsInModerOlympics

Moc krátké:

  • n, np, ntm
  • n, ns, nsisd
  • m, mp, max, points

Správné:

  • teamMemberCount
  • seatCount
  • teamPointsMax

Délky názvů lze také volit podle toho, v jakém rozsahu proměnné využíváme. Pokud používáme proměnnou na dvou řádcích, určitě můžeme zvolit krátký název. Jedná-li se o globálně používaná data, musíme ji popsat precizně.

Označení vypočtené hodnoty ve jménu proměnné

Hodně programů obsahuje proměnné, které obsahují vypočtené hodnoty, např. průměr, minimum, suma apod. Programátoři poté často (a je to správně) přidají do názvu kvalifikátor Avg, Min, Sum atd.

Balík peněz byste také označili kvalifikátorem
Obrázek č. 2: Balík peněz byste také označili kvalifikátorem "Suma". Stejně tak tomu dělejte s proměnnými.

Pokud tak učiníte, je dobré dát tento kvalifikátor na konec názvu. Tedy pro počet sedadel použít jméno seatCount spíše než countSeat. Proč? První výhoda spočívá v tom, že nejdůležitější část názvu stojí na začátku. Navíc pokud tuto konvenci budete dodržovat, budou vaše jména hezky symetrická v celé vaší aplikaci.

Časté protiklady proměnných

Pro lepší konzistenci kódu se vyplatí používat v názvech proměnných protiklady, které jasně vystihnou, co má programátor na mysli. V případě jejich nedodržování poté některé části programu mohou být matoucí. Níže můžete vidět seznam častých protikladů, které i vy můžete využít.

  • begin/end
  • first/last
  • locked/unlocked
  • min/max
  • next/previous
  • old/new
  • opened/closed
  • visible/invisible
  • source/target
  • source/destination
  • up/down

Správného pojmenovávání si možná nebudete dostatečně cenit, dokud se nedostanete ke kódu, který musíte pochopit a jehož proměnné jsou pojmenovány špatně. Jedná se tedy o znalost, která není nijak těžká na pochopení, ale její nevyužití znamená citelné zhoršení vaší práce. Dle mého názoru se pojmenovávání jakýchkoliv objektů v programu věnuje moc málo času na to, jak prospěšné je.

Pokud s programováním začínáte, doporučuji dávat správné názvy proměnným už od začátku vašeho snažení. Jakmile si na to vybudujete zvyk, už to nebudete psát jinak. Časem, až se před vámi vyskytne kód, který nepůjde snadno pochopit kvůli špatnému pojmenovávání entit, mi určitě dáte za pravdu.

Správně pojmenovat proměnné je fundamentální schopnost každého programátora.

Můžete být skvělý programátor schopný vytvořit velké a fungující aplikace. Váš kód bude dodržovat správnou strukturu (netvoříte „spaghetti code“) a přesto se nemusíte dočkat pochopení od kolegů, kteří nerozumí vámi pojmenovaným proměnným.

Někdo říká, že nejtěžší na práci programátora je pojmenovávání. Souhlasím s tím, protože se často nejedná o jednoduchou činnost. Přesto vás nabádám, abyste nad názvy (a to nejen proměnných) alespoň trochu popřemýšleli. Uvidíte, jak se váš kód najednou stane o mnoho čitelnější.