Konvence

Tomáš Pitner, Radek Ošlejšek, Marek Šabo

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 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()

  • 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

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

  • Příklady

    • Person

    • MeasurableGrid

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

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

  • 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.