XML komentáře   zodpovězená otázka

Visual Studio, .NET

Mohl bych Vás poprosit o ponaučení v zápisu XML komentářů.

Chtěl bych vědět jaké hodnoty se uvádí, jak popisovat správně funkce, výstup a tak. Neberte mě jako úplného hlupáka. Jen se chci naučit používat XML komentáře správně.

Třeba na takovéto jednoduché funkci

Private Function Soucet(ByVal iNum1 As Integer, ByVal iNum2 As Integer) As Integer

Return (iNum1 + iNum2)

End Function

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Omlouvám se za multipost, ale ještě jsem narazil na

<FixedString(255)> Dim a As String
nahlásit spamnahlásit spam 0 odpovědětodpovědět

Tohle ale není XML komentář, to je atribut.

Co se týče XML komentářů, nejčastěji se používá jen obecný popis <summary></summary>. Občas se komentuje, jaké výjimky může metoda vyhodit, co znamenají jednotlivé parametry a návratová hodnota. Já po svých zaměstnancích vyžaduji jen to summary, to v 99% případů stačí.

Další hodnoty jsou zde http://msdn.microsoft.com/en-us/library/...

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Děkuji, prostuduji to.

Mohl by jste mi prosím vysvětlit ty atributy?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Atributy jsou metadata, kterými můžete označit třídu, rozhraní, funkci, vlastnost, privátní proměnnou nebo parametr metody. Používají se na různé věci - některé používá kompilátor, jiné můžete číst za běhu a dynamicky tak zjišťovat o třídách nějaké informace.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Nejlepším zdrojem je MSDN, kde je většina členů XML dokumentace řádně popsána:

http://msdn.microsoft.com/en-us/library/...

Důležité jsou zejmena Summary, Param, Returns, Remarks... Záleží, co zrovna popisujete. U Vaší funkce pro součte by mohla dokumentace vypadat třeba následovně:

''' <summary>
''' Sečte dvě hodnoty typu System.Double a vrátí výsledek.
''' </summary>
''' <param name="num1">První operand.</param>
''' <param name="num2">Druhý operand.</param>
''' <returns>Výsledek operace součtu.</returns>
''' <remarks>...</remarks>
Public Function Součet(num1 As Double, num2 As Double) As Double

Můžete si dát záležet více nebo méně na tom, jak přesně a věcně popíšete jednotlivé položky. V první řadě XML komentáře slouží k lepší orientaci v kódu Vám i další vývojářům, kteří k projektu přijdou a v druhé řadě se pomocí různých nástrojů dají z těchto komentářů automatizovaně vytvořit dokumentace. Pokud vyvíjíte knihovnu určenou pro třetí stranu, rozhodně není na škodu si dát na dokumentaci záležet, s dobře zdokumentovanými knihovnami se pracuje o poznání lépe a rychleji, než s nezdokumentovanými, nebo špatně zdokumentovanými knihovnami. Pokud ale vyvíjíte pro sebe, nebo pracujete na části projektu, která neposkytuje veřejné rozhraní, asi nemá moc smysl nějak pečlivě komentovat soukromé členy, pokud je samo o sobě zřejmé, co dělají. To ovšem neplatí při práci v týmu, kdy musí další vývojáři získat okamžitý přehled o tom, co nově implementované části kódu dělají v kontextu s již implementovanými částmi a celkovým účelem projektu. K tomu jsou dobré například <see>, <seealso>, <remarks> (u Vašeho příkladu jsem ho uvedl pouze pro ilustraci, ale běžně se používá pro poznámky a další informace, které by měl vědět vývojář při používání metody, a které nemusí být hned zřejmé), <example>, <code> a pdobně.

Zdroje:

http://msdn.microsoft.com/en-us/library/...

http://msdn.microsoft.com/en-us/library/...

http://msdn.microsoft.com/en-us/library/...

http://msdn.microsoft.com/en-us/library/...

Na MSDN najdete spoustu článků věnujících se nejen XML komentářům, ale také uvidíte, jak se které XML komentáře projeví na dokumentaci, viz třeba: http://msdn.microsoft.com/en-us/library/... kde vidíte logické celky parametry, návratová hodnota, výjimky, ...

nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět

Děkuji, toto je pro mě velmi hodnotná odpověď.

Já začínám jednodušší program a je možné že na něm budeme po čase pracovat dva. A ono i pokud bych na tom pracoval sám, tak si myslím, že je dobré komentovat. Pokud se k projektu vrátím třeba po delší odmlce, budu vědět co a jak. Já jsem dělal třeba tohle

''' <returns>Integer</returns>

což je zřejmě špatně... děkuji za objasnění

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Logicky - označovat metodu návratovým typem nemá moc smysl,jelikož je tato informace jednodušše čitelná z její signatury

nahlásit spamnahlásit spam 0 odpovědětodpovědět

to je trochu zvyk z PHP

/**

* Nazev funkce

*

* @return array pole hodnot

*/

nahlásit spamnahlásit spam 0 odpovědětodpovědět

V PHP to smysl mělo, protože PHP je dynamický jazyk - funkce může vracet cokoliv. V .NETu je datový typ vždy přesně známý a IntelliSense jej ukazuje.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Děkuji za hodnotné informace

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Žádné XML komentáře není potřeba se učit, ani si je pamatovat. Stačí klepnout na název člena třídy (vlastnost, metoda, ...) a z kontextové nabídky vybrat Insert Comment. Existují i pokročilejší komentáře např. pro odkaz na nějakou třídu, nebo formátování, ale to se běžně nepoužívá.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Já mám plugin GhostDoc, stačí stát kurzorem na metodě a zmáčknout Ctrl-Shift-D a komentář to vloží samo. Pak jen upravím summary a je to.

Funguje v C# i VB, mám ten plugin docela rád.

Navíc umí např. u overridované metody okopírovat komentář z bázové třídy.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Já jsem ho zkoušel taky, ale: Hnusí se mi jeho GUI pro nastavení, komentáře píšu v češtině, takže mi nevyhovuje ten výchozí anglický popis a bezplatná verze má omezené možnosti. Takže zůstávám u VS komentářů, kde jde rovněž přiřadit vlastní klávesovou zkratku.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

GUI pro nastavení jsem viděl jen jednou asi 10 sekund, když jsem do něj vlezl omylem, takže mi nějak nevadí. :-)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Mám verzi Visual Basic 2010 Express GhostDoc není pro express verze, a nenalezl jsem tam ani tip p.Linharta (Insert Comment), mám pouze Insert Snippet. Přesto děkuji za ochotu a poskytnuté informace

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Mám také pouze verzi Visual Basic 2010 Express a Insert Comment mi funguje bez problémů.

Nemám s komentáři praxi, nepotřebuji je, ale ze zvědavosti jsem Insert Comment zkusil. Vložil jsem do prázdného projektu funkci, kterou jste uvedl, s kurzorem na názvu Soucet stiskl pravé tlačítko. V kontextové nabídce mám, co hledáte. Tady je výsledek:

  ''' <summary>
  ''' 
  ''' </summary>
  ''' <param name="iNum1"></param>
  ''' <param name="iNum2"></param>
  ''' <returns></returns>
  ''' <remarks></remarks>
  Private Function Soucet(ByVal iNum1 As Integer, ByVal iNum2 As Integer) As Integer
    Return (iNum1 + iNum2)
  End Function

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Není rychlejší těsně nad funkci napsat tři apostrofy? On se tím ten komentář vygeneruje. V C# stačí napsat tři lomítka.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Pokud někdo dopisuje komentáře až nakonec, když už je vše hotovo, tak je rychlejší Insert Comment (alespoň pro mne).

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ajo, já je obvykle píšu ještě předtím, než píšu kód metody.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Dotaz nezněl jak udělat komentáře, ale jak je správně vyplnit.

Chtěl bych vědět jaké hodnoty se uvádí, jak popisovat správně funkce, výstup a tak

Já jsem dělal třeba tohle
''' <returns>Integer</returns>

a já taktéž používám tři apostrofy poté co funkci dopíši

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback