12. Dokumentace a distribuce aplikací. speciálních dokumentačních komentářích vpisovaných před



Podobné dokumenty
Ant aneb Ferda Mravenec, práce všeho druhu

Teoretické minimum z PJV

JAVA V Anotace Java, zimní semestr ,2014 1

ANT. Aplikační programování v Javě (BI-APJ) - 1 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha

JAVA. Nástroje v JDK

JAVA. Nástroje v JDK

Programování v Javě I. Únor 2009

Programování v Javě I. Leden 2008

Obrázek 6.14: Prohlížec nápovedy

20. Projekt Domácí mediotéka

JAVA V Anotace Java, zimní semestr ,2016 1

Doxygen. Jakub Břečka

Semin aˇr Java N astroje Radek Koˇc ı Fakulta informaˇcn ıch technologi ı VUT Bˇrezen 2012 Radek Koˇc ı Semin aˇr Java n astroje 1/ 42

Programovací jazyk Java

JAVA V Anotace Java, zimní semestr ,2015 1

public static void main(string[] args) { System.out.println(new Main().getClass().getAnnotation(Greet.class).text());

Algoritmizace a programování

KTE / ZPE Informační technologie

Programování v jazyku Java Dokumentace, logování, regex

Technologie JavaBeans

8 Třídy, objekty, metody, předávání argumentů metod

Principy objektově orientovaného programování

Seminář Java II p.1/43

Třídy a objekty. Třídy a objekty. Vytvoření instance třídy. Přístup k atributům a metodám objektu. $z = new Zlomek(3, 5);

NetBeans platforma. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

1. Dědičnost a polymorfismus

Viditelnost (práva přístupu) Tomáš Pitner, upravil Marek Šabo

SonarQube - statická analýza kódu a její zapojení v CI. Babu Červenková Big Data developer - Java Fulltext - Robot tým

Obsah přednášky. 12. Dokumentace zdrojového kódu Tvorba elektronické dokumentace UML. Co je diagram tříd. Ing. Ondřej Guth

RMI Remote Method Invocation

Úvod do programovacích jazyků (Java)

Základy programování Zdrojový kód, dokumentace, týmová práce

Vytváření a použití knihoven tříd

OSGi. Aplikační programování v Javě (BI-APJ) - 6 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha

Maven. Aplikační programování v Javě (BI-APJ) - 2 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha

Bridge. Známý jako. Účel. Použitelnost. Handle/Body

PREPROCESOR POKRAČOVÁNÍ

Dědění, polymorfismus

Testování, ladění a dokumentace programů

Tvorba informačních systémů

Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV)

Tabulka symbolů. Vazba (binding) Vazba - příklad. Deklarace a definice. Miroslav Beneš Dušan Kolář

3 Vývojová prostředí, základní prvky jazyka Java, konvence jazyka Java

Class loader. každá třída (java.lang.class) obsahuje referenci na svůj class loader. Implementace class loaderu

Generické programování

Programové konvence, dokumentace a ladění. Programování II 2. přednáška Alena Buchalcevová

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Úvod do programovacích jazyků (Java)

Online komunikace v klubu ESN Liberec

11 Diagram tříd, asociace, dědičnost, abstraktní třídy

První kapitola úvod do problematiky

DocBy.TEX dokumentování zdrojových textů TEXem. 1. Úvod, motivace, zadání. Petr Olšák

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

3. Třídy. Základní pojmy objektového programování. Třídy

Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

Java a Caché IV: Manipulace s objekty

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

3 KTE / ZPE Informační technologie

JAVA. Krátce o Reflection API

Výčtový typ strana 67

Šablonovací systém htmltmpl vypracoval: Michal Vajbar, Šablonovací systém htmltmpl

8. GRAFICKÉ UŽIVATELSKÉ ROZHRANÍ

JAVA Unit testing Java, zimní semestr

7. Datové typy v Javě

Statické proměnné a metody. Tomáš Pitner, upravil Marek Šabo

Algoritmizace a programování

Abstraktní třída a rozhraní

MASARYKOVA UNIVERZITA V BRNĚ FAKULTA INFORMATIKY

Agenda. Docházka Návrat k minulému praktickému cvičení Zápočtové práce. Dokumentace. Dotazy, přání, stížnosti. Co, jak a proč dokumentovat

11. Dědičnost. Dědičnost strana 103

George J. Klir. State University of New York (SUNY) Binghamton, New York 13902, USA

Základy objektové orientace I. Únor 2010

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Soubor jako posloupnost bytů

NOVINKY V JEE EJB 3.1. Zdeněk Troníček Fakulta informačních technologií ČVUT v Praze

1. Dříve než začneme Trocha historie nikoho nezabije Co budete potřebovat Microsoft versus zbytek světa...

Java a XML. 10/26/09 1/7 Java a XML

Komponenty v.net. Obsah přednášky

Interaktivní osnova rozcestník pro studenty

Tvorba podnikových aplikací v jazyce JAVA. Josef Pavlíček KII PEF CZU

1. Téma 12 - Textové soubory a výjimky

Seznamy a iterátory. Kolekce obecně. Rozhraní kolekce. Procházení kolekcí

10 Balíčky, grafické znázornění tříd, základy zapozdření

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Generické typy. Podrobněji: The Java Language Specification ( Third Edition ) , 18

KMI / TMA Tvorba mobilních aplikací

Projekty pro výuku programování v jazyce Java

UJO Framework. revoluční architektura beans. verze

JSR tutorial 2 Transformace v JSR-184

Vývoj aplikací řízený testy. Miroslav Beneš

Java Enum Java, zimní semestr ,2017 1

Počítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů CZ.1.07/1.3.12/

3. Základy programovacího jazyka Java

Správa projektů a testování

typová konverze typová inference

Obsah přednášky. Vývoj aplikací řízený testy. Extrémní programování (XP) Požadavky na nástroje pro XP. Testování aplikací

Spoje střechy Dachanschlüsse.

Transkript:

12. Dokumentace a distribuce aplikací Dokumentace javových programů, dokumentace API Typy komentářů - dokumentační komentáře Generování dokumentace Značky javadoc Distribuční archívy.jar Vytvoření archívu, metainformace Spustitelné archívy Dokumentace javových programů Základním a standardním prostředkem je tzv. dokumentace API Dokumentace je naprosto nezbytnou součástí javových programů. Rozlišujeme dokumentaci např. instalační, systémovou, uživatelskou, programátorskou... Zde se budeme věnovat především dokumentaci programátorské, určené těm, kdo budou náš kód využívat ve svých programech, rozšiřovat jej, udržovat jej. Programátorské dokumentaci se říká dokumentace API (apidoc, apidocs). Při jejím psaní dodržujeme tato pravidla: Dokumentujeme především veřejné (public) a chráněné (protected) prvky (metody, proměnné). Ostatní dle potřeby. Dokumentaci píšeme přímo do zdrojového kódu programu ve speciálních dokumentačních komentářích vpisovaných před příslušné prvky (metody, proměnné). Dovnitř metod píšeme jen pomocné komentáře pro programátory (nebo pro nás samotné). Typy komentářů Podobně jako např. v C/C++: řádkové od značky // do konce řádku, nepromítnou se do dokumentace API blokové začínají /* pak je text komentáře, končí */ na libovolném počtu řádků dokumentační od značky /** po značku */ může být opět na libovolném počtu řádků Každý další řádek může začínat mezerami či *, hvězdička se v komentáři neprojeví. Kde uvádíme dokumentační komentáře Dokumentační komentáře uvádíme: Před hlavičkou třídy - pak komentuje třídu jako celek. Před hlavičkou metody nebo proměnné - pak komentuje

příslušnou metodu nebo proměnnou. Celý balík (package) je možné komentovat speciálním samostatným HTML souborempackage-summary.html uloženým v adresáři balíku. Generování dokumentace Dokumentace má standardně podobu HTML stránek (s rámy i bez) Dokumentace je generována nástrojem javadoc z 1. dokumentačních komentářů 2. i ze samotného zdrojového textu Lze tedy (základním způsobem) dokumentovat i program bez vložených komentářů! Chování javadoc můžeme změnit 1. volbami (options) při spuštění, 2. použitím jiného tzv. docletu, což je třída implementující potřebné metody pro generování komentářů. Princip generování ze zdrojových textů pomocí speciálních docletů se dnes používá i po jiné než dokumentační účely - např. pro generátory zdrojových kódu aplikací EJB apod. Značky javadoc javadoc můžeme podrobněji instruovat pomocí značek vkládaných do dokumentačních komentářů, např.: @author @version specifikuje autora API/programu označuje verzi API, např. "1.0" @deprecated informuje, že prvek je zavrhovaný @exception popisuje informace o výjimce, kterou metoda propouští ("vyhazuje") @param @since @see popisuje jeden parametr metody uvedeme, od kdy (od které verze pg.) je věc podporována/přítomna uvedeme odkaz, kam je také doporučeno nahlédnout (související věci) Příklad zdrojového textu se značkami javadoc Zdrojový text třídy Window: /** * Klasse, die ein Fenster auf dem Bildschirm repräsentiert

* Konstruktor zum Beispiel: * <pre> * Window win = new Window(parent); * win.show(); * </pre> * * @see awt.basewindow * @see awt.button * @version 1.2 31 Jan 1995 * @author Bozo the Clown **/ class Window extends BaseWindow {... } Příklad dokumentačního komentáře k proměnné: /** * enthält die aktuelle Anzahl der Elemente. * muss positiv und kleiner oder gleich der Kapazität sein **/ protected int count; Tyto a další příklady a odkazy lze vidět v původním materiálu JavaStyleGuide des IGE, odkud byly ukázky převzaty. Spouštění javadoc Příklady javadoc [options] [packagenames] [sourcefiles] [classnames] [@files] možné volby: o -help, -verbose o -public, -protected, -package, -private - specifikuje, které prvky mají být v dokumentaci zahrnuty (implicitně: -protected) o -d destinationdirectory - kam se má dok. uložit o -doctitle title - titul celé dokumentace Zdroják s dokumentačními komentáři - Komentáře Ukázkové spuštení javadoc javadoc -classpath. -d apidocs svet vytvoří dokumentaci tříd z balíku svet do adresáře apidocs Distribuce aplikací Distribucí nemyslíme použití nástroje typu "InstallShield"..., ale spíše něčeho podobného tar/zipu Java na sbalení množiny souborů zdrojových i přeložených (.class) nabízí nástroj jar. Sbalením vznikne soubor (archív).jar formátově podobný ZIPu (obvykle je to ZIP formát), ale nemusí být komprimován.

Kromě souborů obsahuje i metainformace (tzv. MANIFEST) Součástí archívu nejsou jen.class soubory, ale i další zdroje, např. obrázky, soubory s národními variantami řetězců, zdrojové texty programu, dokumentace... Spuštění jar jar {ctxu} [vfm0m] [jar-file] [manifest-file] [-C dir] files Volby jar o c - vytvoří archív o t - vypíše obsah archívu o x - extrahuje archív o u - aktualizuje obsah archívu volby: o v - verbose o 0 - soubory nekomprimuje o f - pracuje se se souborem, ne se "stdio" o m - přibalí metainformace z manifest-file parametr files uvádí, které soubory se sbalí - i nejavové (např. typicky dokumentace API - HTML, datové soubory) Volby JAR lze vypsat i spuštěním jar bez parametrů: Obrázek 11.1. Volby nástroje JAR jar - příklad

Vezměme následující zdrojový text třídy JarDemo v balíku tomp.ucebnice.jar, tj. v adresáři c:\tomp\pb162\java\tomp\ucebnice\jar: Obrázek 11.2. Třída JarDemo Vytvoříme archív se všemi soubory z podadresáře tomp/ucebnice/jar (s volbou c - create, v - verbose, f - do souboru): Obrázek 11.3. Vytvoření archívu se všemi soubory z podadresáře tomp/ucebnice/jar Vzniklý.jar soubor lze prohlédnout/rozbalit také běžným nástrojem typu unzip, gunzip, WinZip, PowerArchiver nebo souborovým managerem typu Servant Salamander... Obrázek 11.4..jar archiv v okně PowerArchiveru Tento archív rozbalíme v adresáři /temp následujícím způsobem: Obrázek 11.5. Vybalení všech souborů z archívu

Rozšíření.jar archívů Formáty vycházející z JAR: pro webové aplikace -.war pro enterprise (EJB) aplikace -.ear liší se podrobnějším předepsáním adresářové struktury a dalšími povinnými metainformacemi Tvorba spustitelných archívů Vytvoříme jar s manifestem obsahujícím tento řádek: Main-Class:NázevSpouštěnéTřídy poté zadáme: java -jarnázevbalíku.jar a spustí se metoda main třídy NázevSpouštěnéTřídy. Vytvoření spustitelného archívu - příklad Nejprve vytvoříme soubor manifestu. Příklad jeho obsahu: Obrázek 11.6. Soubor manifestu Následně zabalíme archív s manifestem: Obrázek 11.7. Zabalení archívu s manifestem Spuštění archívu - příklad Spuštění aplikace zabalené ve spustitelném archívu je snadné: java -jar jardemo.jar a spustí se metoda main třídy tomp.ucebnice.jar.jardemo: Obrázek 11.8. Spuštění aplikace z arhcivu

Další příklad spuštění jar jar tfv svet.jar more vypíše po obrazovkách obsah (listing) archívu svet.jar.