Konvence 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 1 • 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; 2 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. 3