// inline comment, no javadoc generated
Tomáš Pitner, Radek Ošlejšek, Marek Šabo
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í)
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
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
a protected
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.
řá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í.
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
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ší…
Dokumentujeme především celé třídy, zejména veřejné
Jejich public
a protected
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
/**
* This class represents a point in two dimensional space.
*
* @author Petr Novotny
**/
public class Vertex2D { ... }
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 to toString
neproporcionálním písmem.
/**
* 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;
}
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
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