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