Dokumentace javových programů I
-
Dokumentace je nezbytnou součástí javových programů.
-
Existuje mnoho druhů dokumentací dle účelu:
-
instalační (pokyny pro nasazení produktu)
-
systémová (konfigurace, správa produktu)
-
uživatelská (pro užívání produktu)
-
vývojářská neboli programátorská (pro údržbu, rozšiřování a znovupoužití)
-
Dokumentace javových programů II
-
Zde se budeme věnovat především dokumentaci programátorské.
-
To znamená pro ty, kteří budou náš kód využívat ve svých programech, rozšiřovat jej, udržovat jej.
-
Programátorské dokumentaci se říká dokumentace API, javadoc.
-
Nejlepším příkladem je přímo dokumentace Java Core API
Pravidla komentování
Při psaní dokumentace dodržujeme tato pravidla:
-
Jedná se hlavně o dokumentaci pro ostatní, tudíž prioritně dokumentujeme to, co je pro použití ostatními
-
Dokumentujeme především celé třídy a jejich
public
aprotected
metody. -
Ostatní věci dle potřeby, například těžce pochopitelné nebo nelogické pasáže kódu.
-
Dokumentaci píšeme přímo do zdrojového kódu ve speciálních dokumentačních komentářích.
-
Dovnitř metod nepíšeme většinou žádné komentáře, ale můžeme (obtížné části).
-
Ideální ovšem je, když uvnitř metod žádný komentář být nemusí, neboť účel a funkčnost je z kódu zřejmá :-)
-
Ve výuce (ale často i v praxi) budou komentáře ve vašem projektu vynucovány nástrojem checkstyle.
Typy komentářů
-
řádkové - od značky
//
do konce řádku, nepromítnou se do dokumentace// inline comment, no javadoc generated
-
blokové - mohou být na libovolném počtu řádků, nepromítnou se do dokumentace
/* block comment, no javadoc generated */
-
dokumentační - libovolný počet řádků, promítnou se do dokumentace
/** documentary comment, javadoc generated */
-
Řádkové a blokové komentáře by měly být pouze dočasné, ve výsledném kódu by měly být komentáře pouze dokumentační.
Nástroj javadoc
-
Slouží ke strojovému generování dokumentace z dokumentačních komentářů a ze samotné struktury programu
-
Dokumentace se vygeneruje do sady HTML souborů, takže to bude vypadat jako v Java Core API.
-
Používá speciální značky se znakem zavináč, např.
@author
, v dokumentačních komentářích
Značky nástroje javadoc
-
Javadoc používá značky vkládané do dokumentačních komentářů; hlavními jsou:
@author
-
specifikuje autora
@param
-
popisuje jeden parametr metody
@return
-
popisuje co metoda vrací
@throws
-
popisuje informace o výjimce, kterou metoda propouští ("vyhazuje")
a další…
Co dokumentujeme
-
Dokumentujeme především celé třídy, zejména veřejné
-
Jejich
public
aprotected
metody -
Lze dokumentovat i celý balík a to sepsáním souboru
package-info.html
v příslušném balíku -
V pořádných knihovnách (API) dokumentace k balíkům je
Komentář třídy
/**
* This class represents a point in two dimensional space.
*
* @author Petr Novotny
**/
public class Vertex2D { ... }
Komentář metody I
-
Zkrácený oficiální komentář metody toString():
/**
* Returns a string representation of the object. In general, the
* {@code toString} method returns a string that
* "textually represents" this object. The result should ...
*
* @return a string representation of the object.
*/
public String toString() { ... }
-
Část
{@code toString}
značí formátování, vypíše totoString
neproporcionálním písmem.
Komentář metody II
/**
* Returns the smaller of two int values.
* If the arguments have the same value, the result is that same value.
*
* @param a an argument.
* @param b another argument.
* @return the smaller of {@code a} and {@code b}.
*/
public int min(int a, int b) {
return (a <= b) ? a : b;
}
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 — pak komentuje příslušnou metodu.
-
-
Doporučení Sun/Oracle k psaní dokumentačních komentářů — How to Write Doc Comments for the Javadoc Tool
Problémy dokumentování
-
Komentáře lžou — změním kód a zapomenu upravit komentář
/** * Calculates velocity. */ System.out.println(triangle.getArea());
-
Zbytečné komentáře
private int size; // creates size
-
Ideální je psát kód a názvy tříd a metod tak, aby se komentáře ani nemusely číst