Tomáš Pitner, Radek Ošlejšek
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 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.
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 tříd
Person
MeasurableGrid
Color
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í.
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;
.
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.