Restrukturalizace dokumentace
- David Grudl
- Nette Core | 8222
Je úžasné vidět, jak se svépomocí rodí dokumentace pro Nette. Už se dokonce uvažuje nad překladem do angličtiny a proto si říkám, že je nejvyšší čas dát dokumentaci rozumější strukturu a jednotný řád.
Struktura
V tuto chvíli je dokumentace koncipována jako přehled tříd s jejich popisem. V tom vidím velký nedostatek. Uživatel obvykle ví, co chce programovat, ale neví, jaké třídy k tomu má použít. Nejvíc se to projevuje u komplexnejších oblastí frameworku (např. Nette\Application), které je potřeba popisovat didakticky, vysvětlit logiku a filosofii, naopak přehled tříd a metod uživateli moc neřekne.
Dlouho jsem zvažoval, jakou strukturu upravit, a jako nejlepší se mi zdá následující.
- Getting Started
- The Definitive Guide
- API Reference
- Glossary & FAQ
- Tutorials & Screencast & The Cookbook
1) Getting Started
Sekce pro vývojáře, kteří přišli k Nette poprvé. Bude je zajímat jak Nette stáhnout, nainstalovat, jakou má licenci a také jak vytvořit velmi jednoduchou aplikaci. Zde lze použít stručnou verzi současného Quickstartu. Klíčové je, aby se uživatel dokázal zorientovat a aby ho framework během prvních pár minut, které bude ochoten čtení věnovat, zaujal. Poté bude ochoten si jej stáhnout a vyzkoušet napsat první aplikaci – ale i tomu nevěnuje víc než 30 – 60 min času.
2) The Definitive Guide
Kompletní a vyčerpávající průvodce celým frameworkem. Koncipovaný tak, aby se četl jako kniha. Vzorem může být Definitive Guide to symfony http://www.symfony-project.org/book/1_2/.
Do něj bych zakomponoval převážnou většinu současné dokumentace, včetně Quickstartu. Přitom bych naboural dělení podle jednotlivých tříd. Metody a třídy zmíněné v dokumentaci by byly (zejména při prvním použití) proklikávací do API reference.
3) API Reference
Přehled všech tříd a metod generovaných z PHPDoc. Současnou podobu bych upravil, aby lépe zapadala do designu dokumentace a uživatel neměl pocit, že se dostal na zcela jiné stránky.
Nevýhodou je, že vylepšování této dokumentace je možné jen editací zdrojového kódu. Jak už jsem psal dříve, pokud má někdo zájem se na tomto podílet a dobře ovládá angličtinu, přístup do SVN mu poskytnu.
4) Glossary & FAQ
Slovníček pojmů a často kladené dotazy. Tohle asi nepotřebuje další komentář.
5) Tutorials & Screencast & The Cookbook
Sbírka návodů, postupů, tipů a triků. Jednalo by se o důležité rozšíření Průvodce, tj. alternativní „quickstarty“ (nejlépe včetně videoukázek), řešení specifických úkolů a vše, co se do Průvodce nevešlo.
Jednotný řád
Návod pro spoluautory dokumentace. Takový „coding standards for documentation“. Jasná pravidla, jak používat wiki-syntax, jakou formou psát, jak odkazovat, typografická pravidla.
Pro jednotlivé části dokumentace by měl existovat vlastní postranní
panel. Přidal bych jednotný formát odkazování do API (např.
...odkaz vygeneruje metoda "link()":api:Nette\Application\Presenter::link, kde jako první parameter...
).
Nejprve se pokusím navrhnout strukturu URL a převést současnou dokumentaci do nové formy (během té doby bych asi vypnul možnost editovat stránky). A samozřejmě, celé téma otevírám k diskusi, takže pokud máte nápady, sem s nimi!
- veena
- Člen | 98
David Grudl napsal(a):
- Getting Started
- The Definitive Guide
- API Reference
- Dictionary & FAQ
- Tutorials & Screencast & The Cookbook
Myslim, že to je rozumný rozdělení. Nevim, jestli je Dictionary správnej výraz pro slovník pojmů, ale možná jo.
Udělal bych alternativní možnost zobrazení každé té sekce v jednom HTML pro jednoduché vyhledávání a stáhnutí. Export všech zároveň do jednoho pdf by byl taky cool.
- David Grudl
- Nette Core | 8222
veena napsal(a):
Myslim, že to je rozumný rozdělení. Nevim, jestli je Dictionary správnej výraz pro slovník pojmů, ale možná jo.
Ano, opravím na Glossary
- David Grudl
- Nette Core | 8222
Jj, chtěl bych do hlavičky každé třídy dát odkaz do Guide, takže Guide a API by bylo obousměrně provázané. Takže API bude řazené podle NS/tříd a nabízet na důležitém místě odkaz do podrobné dokumentace.
- romansklenar
- Člen | 655
Hodně dobrých ukázek kódu se vyskytuje i ve fóru ([1]
,
[2]
apod.), které by stály za „vytažení na povrch“, protože jak fórum
roste snadno se to ztratí a hůře dohledává. Nevím ale kde by se takovédle
tipy/snippety/best practices hodily nejvíce, logicky podle rozdělení výse
spadají do Tutorials & Screencast & The Cookbook
, ale
podle toho jak jsem se díval jak je psána
Definitive Guide to Symfony
by se takovéto názorné ukázky na
objasnění problematiky měly objevovat i v
2) The Definitive Guide
protože tam se mi zdá, že nezabíhá
příliš do detailů (myslím tím jak konkrétní věc naimplementovat).
Možná by pro začátek mohlo stačit, aby se momentální rozdělení podle
tříd překopalo do té „knižní podoby“ stanovením nějaké osnovy (aby
bylo jasně dané jaké kapitoly jsou po době, aby na sebe v čtení
navazovaly a nepřeskakovaly k zatím neznámým věcem), podobně jako bylo
Nette probíráno na školení + přidáním nějakých pokeců na začátek co
dokážou nového člověka zaujmout, nastínit co nejvíce možností a
featurek a zároveň ho nezmást.
Jak ale zachovat možnost nalezení informací/dokumentace ke konkrétní třídě? Zachovat současnou dokumentaci? Udžovat současně knižní a třídní verzi?
Nejprve se pokusím navrhnout strukturu URL a převést současnou dokumentaci do nové formy (během té doby bych asi vypnul možnost editovat stránky).
Jsou (budou) v nejbližších dnech nějaká omezení na editaci?
- David Grudl
- Nette Core | 8222
romansklenar napsal(a):
Jsou (budou) v nejbližších dnech nějaká omezení na editaci?
Dnešní noc to bloknu a pokusím se dokumentaci upgradovat.
- romansklenar
- Člen | 655
Máte někdo zkušenosti nebo tipy s tvorbou těch videotutoriálů? Narazil jsem totiž na zajímavý článek, možná to prubnu. Je to daleko větší šance, že to člověka zaujme než čtení suchého textu.
- jasir
- Člen | 746
romansklenar napsal(a):
Máte někdo zkušenosti nebo tipy s tvorbou těch videotutoriálů? Narazil jsem totiž na zajímavý článek, možná to prubnu. Je to daleko větší šance, že to člověka zaujme než čtení suchého textu.
Ahoj, dost dobrý se mi zdá Wink
Je to aplikace pro Windows, je zdarma, vyrabí to flashe a je to velice
jednoduché…