Generatory dokumentacji kodu źródłowego

Slides:



Advertisements
Podobne prezentacje
HTML 5.0 Marcin Badurowicz .
Advertisements

Rafał Hryniów Tomasz Pieciukiewicz
Generics w .NET 2.0 Łukasz Rzeszot.
Programowanie w Internecie (Internet Programming) Krystyna Dziubich p. 521 XSL Formatting Objects.
Kamil Smitkiewicz Bezpieczeństwo w PHP.
PROGRAMOWANIE STRUKTURALNE
Tworzenie i obsługa programów – przykład 3 uwagi cd. Wykorzystując różne klasy biblioteki języka Java należy pamiętać w jakim pakiecie się znajdują. Wszystkie.
Podstawowe wiadomości
Programowanie Obiektowe w Javie (c.d.)
Programowanie obiektowe w Javie
11 Przypomnienie: zaliczenie ćwiczeń Kolokwium zaliczeniowe na ćwiczeniach 16 maja: zadania z technik omawianych na ćwiczeniach, można korzystać z notatek.
Przedstawienie możliwości, wad i zalet dwóch wybranych narzędzi CASE
Tworzenie ASP.NET Web Form
Aplikacje ASP.NET Arkadiusz Twardoń ZTiPSK
PHP vs. ASP PHP – lider wydajności wśród języków skryptowych.
Dokumentowanie wymagań w języku XML
Zarządzanie konfiguracją Doskonalenie Procesów Programowych Wykład 6 Copyright, 2001 © Jerzy.
zespół JPEG w składzie:
Obiektowe metody projektowania systemów
Obiektowe metody projektowania systemów
Procesor tekstu Word część 2
Wykład 2: Systemy klasy C.A.T. (Computer-Aided Translation)
PODSTAWY JĘZYKA PHP 1. czym jest 2. składnia 3. wersje 4. bazy danych
P I OTR SKOŁYSZ. POCHODZENIE I CELE CZYM JEST.NET ? CO IMPLEMENTUJE MONO ? ŚRODOWISKO PRACY [MONODEVELOP] SYTEMY OPERACYJNE CO PROGRAMOWAĆ ? JĘZYKI PRZYKŁADOWY.
Forum internetowe, przykład skryptu, Funkcjonalność.
Made by Mateusz Szirch Kilka słów o JavaScript.
Pakiety w Javie Łukasz Smyczyński (132834). Czym są pakiety? Klasy w Javie są grupowane w pewne zbiory zwane pakietami. Pakiety są więc pewnym podzbiorem.
Podstawy programowania II Wykład 2: Biblioteka stdio.h Zachodniopomorska Szkoła Biznesu.
Rozwój aplikacji. To zestaw narzędzi do budowania i optymalizacji złożonych aplikacji opartych na przeglądarce. To zestaw narzędzi do budowania i optymalizacji.
KONSTRUKCJA KOMPILATORÓW WYKŁAD WYKŁAD Robert Plebaniak Robert Plebaniak.
Podstawy programowania. Język C i C++– podstawy Temat: 1
Tworzenie Aplikacji Internetowych dr Wojciech M. Gańcza 7.
Tadeusz Ziębakowski Zachodniopomorski Uniwersytet Technologiczny.
Tworzenie strony internetowej krok po kroku.
Programowanie strukturalne i obiektowe
Technologia informacyjna Magdalena Kowalewska
Tworzenie aplikacji mobilnych
Programowanie obiektowe – zastosowanie języka Java SE
Java – coś na temat Klas Piotr Rosik
Programowanie obiektowe Wykład 6 dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/14 Dariusz Wardowski.
Tworzenie Aplikacji Internetowych
Systemy zarządzania treścią Wykład 5
  ELEMENTY JĘZYKA JAVA komentarze w Javie, słowa kluczowe i operatory, proste typy danych, tablice, podstawowy zestaw instrukcji.
XML Publisher Przedmiot i zakres szkolenia Przedmiot i zakres szkolenia Przeznaczenie XML Publisher Przeznaczenie XML Publisher Definiowanie Definiowanie.
Temat 2: Instalacja Apache, PHP i bazy danych MySQL.
Temat 1: Ogólne cechy języka PHP
HTML (ang. HyperText Markup Language ) – język do tworzenia stron internetowych opierający się na znacznikach, czy inaczej je nazywając – tagach. Język.
Technologie internetowe Wykład 5 Wprowadzenie do skrytpów serwerowych.
Treści multimedialne - kodowanie, przetwarzanie, prezentacjaOdtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
HTML Hyper Text Markup Language komputerowe Esperanto cz. I historia, struktura dokumentu.
Podstawy języka skryptów
Damian Urbańczyk xHTML Elementy graficzne.
Technologie internetowe
Prom Pisanie pluginów Maciej Sobkowiak & Tomek Ciesielczyk.
Obiektowe metody projektowania systemów Abstract Factory design pattern (aka. Kit)
Temat Prezentacji : ZNACZNIKI META TAGS wyk.H. Kozłowski.
Object-relational mapping (aka O/RM, ORM, and O/R mapping)
Partnerstwo dla Przyszłości 1 Lekcja 28 Dziedziczenie i rodzaje dziedziczenia.
Dokumentacja programu komputerowego i etapy tworzenia programów.
Microsoft® Office Word
Języki i technologie wytwarzania stron WWW Autor: Michał Walkowski Referat.
Tworzenie dokumentacji w systemie Doxygen Paweł Strużyński 25 maja 2011.
InMoST Wielkopolska sieć współpracy w zakresie innowacyjnych metod wytwarzania oprogramowania Termin realizacji: – Innowacyjne metody.
Programowanie Obiektowe – Wykład 6
Podstawy tworzenia skryptów
Programowanie obiektowe – zastosowanie języka Java SE
Aplikacje i usługi internetowe
Zapis prezentacji:

Generatory dokumentacji kodu źródłowego Cel tworzenia dokumentacji Sposób dokumentowania Przegląd narzędzi

Po co dokumentować kod? Prezentacja interfejsu Duże projekty, współpraca wielu programistów, łatwa kontrola Wielokrotne wykorzystanie tego samego kodu Pomoc w wykrywaniu błędów w projekcie

Komentarze w kodzie Informacja będąca w dwóch miejscach – z czasem będzie nieaktualna Informację w kodzie źródłowym łatwiej utrzymać jako aktualną Programiście łatwiej czytać (i umieszczać) komentarze w kodzie Generator dokumentacji przetwarza ją na bardziej czytelny format dla innych

Rodzaje dokumentacji Generowana na żądanie klienta Statyczna – generowana co jakiś czas Dostępna przez sieć (np. w formacie HTML) W formacie do druku (np. ps, pdf) Opisująca tylko strukturę (XML)

Działanie generatora Wejście – kod źródłowy z odpowiednio sformatowanymi komentarzami (ew. bez komentarzy) Wyjście – gotowa dokumentacja w odpowiednim formacie (formatach)

Budowa generatora Podział na: Front-end (przód) Back-end (tył) Doclets Rozne formaty, rozne jezyki

Komentarze typu JavaDoc /** * Tekst dokumentacji. */ /// Jednowierszowy Używane przez większość generatorów Odnoszą się do najbliższego następnego elementu

/** * Przykładowa klasa. * Pozwala wypisać Hello, world! */ class hello{ * Konstruktor function hello(){} * Metoda wypisująca tekst Hello, world! function wypisz(){ echo „Hello, world!”;} }

Formatowanie wizualne /** * <p>Tekst dokumentacji</p> */ Większość generatorów dopuszcza umieszczanie w DocBlock’ach niektórych tagów HTML, czasem innych (np. LaTeX)

Tagi /** * Jakaś funkcja. * @version 10.5 */ function bla(){} @identyfikator – nieobowiązkowy element DocBlock’u, przypisujący danemu atrybutowi wartość generatory mają listy rozpoznawanych tagów

Przykładowe tagi @version - wersja @author – kto jest autorem @param – opis parametrów funkcji @return – opis wartości zwracanej przez funkcje @see – link do dokumentacji innego elementu @link http://www.phpdoc.org - wstawienie linku @source – wstawienie kodu źródłowego funkcji @package – pakiet do którego należy dany element @abstract – określenie klasy abstrakcyjnej @access [public | private]

/** * Przykładowa klasa. * Pozwala wypisać Hello, world! * @link http://www.phpdoc.org * @version –1.33(3) ;-) * @author balon * @abstract */ class hello extends bazowa{ /// Konsturktor function hello(){} * Wypisuje tekst. * @return void function pisz(){} }

Narzędzia dla PHP phpDocumentor (www.phpdoc.org) phpxref (phpxref.sourceforge.net) PHPDoc (www.phpdoc.de) PHPDoc nakładka na JavaDoc’a (www.callowayprints.com/phpdoc) PHPDocGen – napisany w perlu PHPAutoDoc PHPCodeDoc BalonDoc ;-) – dokumentacja SSUL

Porównanie narzędzi dla PHP phpdoc.org Phpxref phpdoc.de phpdoc+ JavaDoc phpDocGen BalonDoc Język PHP Perl Java styl JavaDoc + ~ niezależność od struktury plików - dokumentacja generowane formaty HTML, PDF, CHM, XML HTML „Doclety” HTML, LaTex interfejs linia poleceń, docBuilder linia poleceń skrypt php sygnalizacja błędów validator

„BalonDoc” ;-) (1) Stworzony na potrzeby serwera SSUL Wypluwa tylko HTML, ale podzielony na Front-end i Back-end Generuje dokumentacje na żądanie – zawsze aktualną Używa swojego parsera Można mieszać kod obiektowy i strukturalny, niezależny od struktury plików Brak komentarzy mu nie przeszkadza, ale nadmiarowe komentarze stwarzają problemy

„BalonDoc” ;-) (2) Komentarze: /********************* * NazwaKlasy * * Opis działania * * klasy. * * autor wersja * *********************/ /*********************** * Opis\n funkcji.<br> * ***********************/

Inne języki (narzędzia darmowe) JavaDoc – część SDK DOC++ Doxygen CppDoc I wiele innych – długa lista jest na stronie: http://www.stack.nl/~dimitri/doxygen/links.html