Konvence

Tomáš Pitner, Radek Ošlejšek

Konvence obecně

  • Slouží k ustálení zvyklostí, jak psát kód

  • Konvence pro různé programovací jazyky se obvykle částečně liší.

  • Nejsou striktně vyžadované překladačem, tzn. kód může být přeložitelný a funkční i při porušení konvencí.

  • V Javě se dodržují víceméně všude a všemi vývojáři, ti většinou nemají moc vlastních odlišných konvencí.

  • V Javě se na nich hodně lpí a jejich nedodržování je neslušnost.

  • Podstatnou kategorií konvencí jsou jmenné konvence pro pojmenovávání tříd, proměnných atd.

Jmenné zásady v Javě

  • Nepoužíváme diakritiku (problémy s editory, přenositelností a kódováním znaků).

  • Používáme výhradně angličtinu (čeština/slovenština dělá problémy cizojazyčným kolegům v týmu).

  • Je-li jméno složenina více slov, pak je na rozdíl např. od C nebo Pythonu nespojujeme podtržítkem: This_is_bad_in_Java.

  • Používáme tzv. camelCase, "velbloudí" střídání velkých a malých písmen: myVeryLongMethodNameIsOK().

  • Delší jména až tak nevadí, podstatná je čitelnost.

  • Konvence jsou jiné pro jména balíků, tříd, metod, proměnných atd. viz dále.

Konvence názvů proměnných

  • vztahují se na lokální proměnné v metodách i na atributy

  • jména proměnných začínají malým písmenem

  • Příklady

    • age

    • temporalName

Konvence názvů metod

  • platí pro všechny metody obecně

  • jména metod začínají malým písmenem

  • názvy metod vždy obsahují závorky, v kterých mohou, ale nemusí, být parametry

  • Příklady

    • calculateAge()

    • print(String stringToBePrinted) — stringToBePrinted je parametr

    • toString()

Konvence názvů tříd, záznamů a výčtů

  • začínají velkým písmenem

  • Příklady tříd

    • Person

    • MeasurableGrid

    • Color

Konvence názvů balíků

  • všechno malými písemny

  • jednotlivá slova reprezentují složky názvu (a tím adresáře, kde jsou třídy balíku uloženy)

  • slova jsou oddělena tečkou

  • Příklady

    • cz

    • cz.muni.fi

    • geometry (není ideální, protože není světově unikátní)

Konvence názvů konstant a prvků výčtu

  • Konstantou rozumíme hodnotu, která se nemění.

  • Totéž prvek výčtu, například SPRING je prvkem výčtu Season.

  • Název konstanty se píše velkými písmeny.

  • Konstanta je jediná výjimka, kde v názvu používáme znak _.

  • Příklady:

    • SIZE

    • MAXIMUM_AGE

    • DEFAULT_USER_NAME

  • Deklarace typicky obsahuje modifikátory public static final.

  • V celé podobě například public static final int MAXIMUM_AGE = 100;.

  • Je dobře možné i s omezenou viditelností private static final int MAXIMUM_AGE = 100;.

Jmenné konvence — testík

  • Co následující identifikátory mohou být - Třída? Metoda? Lokální proměnná? Atribut? Konstanta?

    • Dog

    • dog

    • dog()

    • DOG

Jmenné konvence — závěrem

  • Dodržování jmenných konvencí výrazně zlepšuje čitelnost i cizího kódu.

  • Je základem psaní srozumitelných programů.

  • Bude vyžadováno a hodnoceno v úlohách i písemkách.

  • Poměrně málo často se v názvech tříd či proměnných používají číslice — spíše výjimečně.

  • Jedině tam, kde jde o zvláštní konkrétní význam daného čísla, např. Counter32bit, Vertex2D.