Konvence

Tomáš Pitner, Radek Ošlejšek, Marek Šabo
tomp@fi.muni.cz

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.

/