Jak vyvíjet programy v Javě

Z FI WIKI
Přejít na: navigace, hledání

Tento článek vznikl jako materiál k závěrečné přednášce z předmětu PB162 a jeho cílem je zrekapitulovat základní zásady vývoje aplikací v Javě a zároveň poskytnout přehled dalších tipů a zdrojů, které mohou být při vývoji v jazyce Java užitečné.

Základní zásady objektového programování v Javě

  • Základní biblí každého programátora v Javě je kniha Java efektivně, aneb 57 zásad softwarového experta. Viz též http://developers.sun.com/learning/javaoneonline/2006/coreplatform/TS-1512.pdf.
  • Primárním cílem je vždy jednoduchý a přehledný kód. Jednoduchost a přehlednost by většinou měla mít přednost před efektivitou.
  • Dodržujeme konvence pro zápis kódu.
  • Volíme srozumitelné identifikátory, snažíme se dodržet zavedené konvence.
  • Snažíme se psát kód tak, aby nebyly potřeba komentáře.
  • Vyhýbáme se duplicitnímu kódu.
  • V maximální možné míře využíváme knihovny (zejména Java Core API), nevynalézáme znovu kolo.
  • Důsledně uplatňujeme princip zapouzdření. Pozor na nechtěné porušení tohoto principu zpřístupněním vnitřních modifikovatelných instancí.
  • Řetězce vždy porovnáváme vždy metodou equals.
  • Dědičnost používáme s mírou a pouze tehdy, jde-li skutečně o vztah generalizace-specializace. V mnoha případech se požadoveného výsledku dá dosáhnout flexibilnějšími metodami (agregace, delegování, vhodné návrhové vzory, oddělení funkcionality do jiných tříd).
  • Když překrýváme metodu equals(), nesmíme zapomenout překrýt hashCode().
  • Výjimky slouží pouze k ošetření chyb či jiných nestardardních situací a nikdy by se neměly používat jako běžný prostředek pro řízení toku programu.
  • Výjimka by měla mít vhodnou chybovou hlášku.
  • Výjimka by měla být vhodným způsobem ošetřena.
  • Pokud výjimka vznikla jako reakce na jinou výjimku, měla by mít správně nastavenou svoji příčinu.
  • Jako typ proměnných, atributů, parametrů a návratových hodnot metod se snažíme používat co nejobecnější typy, nejlépe rozhraní.
  • Každá metoda by měla mít dobře definovaný svůj kontrakt.
  • Programujeme defenzivně a vždy kontrolujeme dodržení kontraktu metody.
  • Minimalizujeme rozsah platnosti proměnných.

Jak programovat efektivně

  • Znát dobře Javu
  • Mít dostatek zkušeností a praxe
  • Znát Java Core API i další knihovny
  • Provádět vhodnou dekompozici
    • Základním pravidlem je rozdělení problému na co nejmenší podproblémy, které ještě má cenu řešit samostatně
    • Lepší je tedy mít více menších tříd, nebo více kratších metod (viz refaktoring)
    • Minimalizovat míru závislostí
  • Používat vhodné nástroje
  • Používat vhodnou metodiku (např. Extrémní programování)
  • Provádět automatizované testování
  • Znát a používat návrhové vzory
  • Zapsat si další kurzy na FI :-)

Platforma Java

Zdroje informací

Nástroje

Knihovny a frameworky

Novinky z Javy

  • Implementace Javy od firmy SUN Microsystem uvolněna pod GPL
  • Java 6 [1], [2]
  • NetBeans 5.5 [3]; na cestě jsou NetBeans 6.0 [4]