Doxygen. Jakub Břečka

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

Algoritmizace a programování

KTE / ZPE Informační technologie

3 KTE / ZPE Informační technologie

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

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

Generické programování

1. Programování proti rozhraní

RMI Remote Method Invocation

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

PREPROCESOR POKRAČOVÁNÍ

Úvod Vývojová prostředí Štábní kultura Dokumentace Konec. Programování v C# Prostředí a doporučení 1 / 39

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

Anotace a Hibernate. Aleš Nosek Ondřej Vadinský Daniel Krátký

Algoritmizace, základy programování, VY_32_INOVACE_PRG_ALGO_01

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

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

17. Projekt Trojúhelníky

David Bednárek Jakub Yaghob Filip Zavoral.

Java Cvičení 05. CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics

Java Enum Java, zimní semestr ,2017 1

Distribuované systémy a výpočty

Pokud zadání nerozumíte nebo se vám zdá nejednoznačné, zeptejte se. Pište čitelně, nečitelná řešení nebudeme uznávat.

Webová prezentační aplikace

Definice třídy. úplná definice. public veřejná třída abstract nesmí být vytvářeny instance final nelze vytvářet potomky

JAVA. Další jazyky kompilovatelné do Java byte-code

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/

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

Sphinx Doc. Hádanky o jednom zdroji (dokumentace) Lena

IRAE 07/08 Přednáška č. 2. atr1 atr2. atr1 atr2 -33

Distribuované systémy a výpočty

Úvod do programovacích jazyků (Java)

PROGRAMOVÁNÍ V C++ CVIČENÍ

Java - výjimky. private void vstup() throws IOException {... }

UJO Framework. revoluční architektura beans. verze

Podmínky na zápočet. Java, zimní semestr

Abstraktní datové typy: zásobník

Zápis programu v jazyce C#

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 3.4.

Programování v C++ 1, 1. cvičení

Základy jazyka C# Obsah přednášky. Architektura.NET Historie Vlastnosti jazyka C# Datové typy Příkazy Prostory jmen Třídy, rozhraní

Vláknové programování část V

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);

Webové služby a XML. Obsah přednášky. Co jsou to webové služby. Co jsou to webové služby. Webové služby a XML

Iterator & for cyklus

Skriptovací jazyky. Obsah

IUJCE 07/08 Přednáška č. 1

RMI - Distribuované objekty v Javě

Algoritmizace a programování

Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost rozhraním a výjimkám.

Z. Kotala, P. Toman: Java ( Obsah )

Jazyk C# (seminář 6)

Java Výjimky Java, zimní semestr

Objektově orientované programování v PHP 5. Martin Klíma

IRAE 07/08 Přednáška č. 7. Začátek (head)

Technologie Java Enterprise Edition. Přemek Brada, KIV ZČU

Konstruktory překladačů

Code Contracts. Robert Haken [MVP ASP.NET, MCT] Software architect, Owner at HAVIT, s.r.o. knowledge-base.havit.cz

Platforma Java. Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. Petr Krajča (UP) KMI/PJA: Seminář V. 27. říjen, / 15

[ASP].NET Core Demystified. Miroslav Holec. Konzultant a lektor [ASP].NET Core.

Využití nástroje Doxygen pro vytváření dokumentace programů ze zdrojového kódu. Filip Dorňák

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

Úvod do programovacích jazyků (Java)

M4 PDF rozšíření. Modul pro PrestaShop.

Dědičnost (inheritance)

Úvod do CORBY. Svetlozara Arabadzhieva

Třídy a struktury v C++

Stream API. Petr Krajča. Základy programovaní 4 (Java) Katedra informatiky Univerzita Palackého v Olomouci

Obchodní akademie a Jazyková škola s právem státní jazykové zkoušky Jihlava

X-komponenty 3.1. Uživatelská příručka. J. Kocman, V. Trojan

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

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

Tvorba WWW stránek. přehled technologií používaných na webu principy jednotlivých technologií a možnosti jejich vzájemného kombinování

20. Projekt Domácí mediotéka

Základy Guice Vazby Scopes. Google Guice. základní seznámení s frameworkem Google Guice

Java Cvičení 01. CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics

NSWI096 - INTERNET JavaScript

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

Jakub Čermák Microsoft Student Partner

Testovací metoda. Testovací metoda. public class SimpleTest {

Instalace a konfigurace web serveru. WA1 Martin Klíma

JAVA. Krátce o Reflection API

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI

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

Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií

Objektově orientované programování

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

SIMATIC S IT. Micro Automation. Promoters Meeting October Představení CP IT SPIDER CONTROL TELESERVIS. TESTOVACÍ server.

Natural Language Toolkit

Přehled probírané látky

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

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

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

1 Nástroje pro správu verzí. 1.1 Pojmy:

Architektura COM. Historie Component Object Model (COM) Komunikace s komponentami Rozhraní komponent COM komponenty v.net.

Programovací jazyk C# Úvod do programování v C#

Programovací jazyk Úvod do programování v C#

Jakub Čermák Microsoft Student Partner

CMS LARS VIVO VERZE 1.2 Z POHLEDU VIVOJÁŘE

Transkript:

Doxygen Jakub Břečka

Úvod Proč a typy dokumentace na přednášce Programátorská dokumentace (popis implementace, tříd, funkcí, API) Doxygen, JavaDoc, Sandcastle, AppleDoc, Doxygen = klasika mezi dokumentačními nástroji C, C++, Java, Objective-C, Python, PHP, C#, Windows, Linux, Mac OS, Vstup: Anotované zdrojové kódy, konfigurace Výstup: HTML, LaTeX, PDF, man stránky,

Vstupy a výstupy

Anotace /** * This class implements a simple "Hello world" application. */ class HelloDoxy { /** * Main method of the HelloDoxy class. * @param args Arguments passed from the command line. */ public static void main(string[] args) { System.out.println("Hello World!"); } }

Konfigurační soubor Vygenerovat pomocí -g : $ doxygen g Configuration file `Doxyfile' created. Formát: TAGNAME = value TAGNAME = value1 value2 TAGNAME = "Value with spaces"

Doxyfile DOXYFILE_ENCODING = UTF- 8 PROJECT_NAME = "My Project" OUTPUT_DIRECTORY = OUTPUT_LANGUAGE = English SHOW_FILES = YES SHOW_NAMESPACES = YES EXTRACT_ALL = NO EXTRACT_PRIVATE = NO GENERATE_HTML = YES GENERATE_HTMLHELP = NO GENERATE_LATEX = YES LATEX_OUTPUT = latex GENERATE_MAN = NO

Vygenerování dokumentace $ ls Doxyfile HelloDoxy.java $ doxygen Doxyfile... $ ls Doxyfile HelloDoxy.java html latex $ ls html annotated.html classhellodoxy- members.html classes.html doxygen.css functions.html index.html jquery.js nav_h.png search tab_b.png tab_s.png bc_s.png classhellodoxy.html closed.png doxygen.png functions_func.html installdox nav_f.png open.png tab_a.png tab_h.png tabs.css

Výsledek

Syntaxe Dokumentace v komentářích, brief, detailed : Konfigurace JAVADOC_AUTOBRIEF JavaDoc/C style: /** * Brief description. Detailed description. */ Qt style: /*! * \brief Brief description. *... */ C++ style: /// ///... text... /// Single-line brief: /// Brief description. /** Detailed description. */

Umístění anotací Soubor Namespace Třída, metoda, proměnná, struktura, union, enum, Je-li anotace umístěna jinam, je třeba označit, k čemu patří: \class, \enum, \file, \fn, \interface, \namespace, \var, \struct,

Dokumentování souborů, tříd /*! * \brief Pretty nice class. * \details... * \author John Doe * \author Jane Doe * \version 4.1a * \date 1990-2011 * \pre First initialize the system. * \bug... * \warning... * \copyright GNU Public License. */ class SomeNiceClass {};

Dokumentování funkcí \param [(dir)] <param-name> { description } \throw, \throws, \exception <exception-object> { description } \return { description } \deprecated { description }

Nečíslovaný seznam +, -, * Hello world - item - item - subitem Seznamy Číslovaný seznam +#, -#, *#, +., -., *. Hello world - # item 1 - # item 2 - # subitem 1

Skupiny Sloučení souborů, tříd, metod, stránek, skupin, do modulů \defgroup <name> (title) \addtogroup <name> (title) \ingroup <groupname> Seskupení více položek ///@{... ///@} /**@{*/... /**@}*/

Strukturální (kam co patří) \class, \fn Příkazy Označování sekcí \brief, \details, \exception, \param, \return Vytváření odkazů \link, \ref Ukázky kódu \include Vizuální příkazy \b, \em, \code, \n

Grafy a diagramy Diagramy dědičnosti, graf závislosti souborů, grafy volání Využívá GraphViz a utilitu dot Konfigurace HAVE_DOT Pokud máme dot v $PATH, funguje vše automaticky

Preprocessing Doxygen má vestavěný C-čkový preprocesor Podmíněné příkazy (#if) defaultně ano, expanze maker defaultně ne Konfigurace ENABLE_PREPROCESSING, MACRO_EXPANSION, EXPAND_ONLY_PREDEF, PREDEFINED Hodí se pro makra typu declspec, attribute,

Samostatné stránky Vytvoření hlavní stránky a dalších stránek: \mainpage [(title)] \page <name> (title) \section, \subsection \tableofcontents

Odkazování Odkazy odkudkoliv kamkoliv stránky, komentáře, funkce, typy \link <link-object> text odkazu \endlink \ref <link-object> \sa, \see Automatické odkazy ::ClassName ClassName::MethodName(ParamTypes) ClassName::VariableName

Další možnosti Markdown, HTML support Vzorce Doxywizard Formátování výstupu HTML výstup pomocí CSS, vlastních šablon To-do list, bug list, deprecated list

http://www.doxygen.org/ Otázky? Ukázky vygenerované dokumentace http://api.kde.org/ http://gnuradio.org/doc/doxygen/ http://www.stack.nl/~dimitri/doxygen/projects.html http://ci.apache.org/projects/httpd/trunk/doxygen/ Děkuji za pozornost.