Tomáš Pitner, Radek Ošlejšek, Marek Šabo
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.
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
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
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()
začínají velkým písmenem
Příklady
Person
MeasurableGrid
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í)
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;
Co následující identifikátory mohou být - Třída? Metoda? Lokální proměnná? Atribut? Konstanta?
Dog
dog
dog()
DOG
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.