Dokumentace: centrální bod ideologie

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
David Grudl
Nette Core | 8218
+
0
-

Webové stránky Nette prošly v posledních týdnech velkým vývojem. V tuto chvíli je třeba stanovit plán, jak obsah vytvářet. Rád bych na tomto místě vytvořil centrální bod ideologie, kde se sjednotí informace o tom, jakým směrem se má podoba webu ubírat.

Tento příspěvek budu postupně doplňovat a následující komentáře promazávat, aby stále zůstával aktuální. Následující slova nejsou dogma, o všem lze diskutovat. Občas si dovolím psát o dosud neimplementovaných věcech v přítomném čase.

Co vlastně chceme?

Diskuse o struktuře webu se musí odvíjet od úvah, co vlastně má čtenářům nabídnout:

  • Základní informace o frameworku, akcích, novinkách – tedy titulní stránka s příslušenstvím
  • Rychlé seznámení s frameworkem – úkol pro sekci Introduction, ve formě textu i videa
  • Podrobný náhled do frameworku – úkol pro Programátorskou příručku
  • Přehled tříd a metod – API reference
  • Rychlé odpovědi na časté dotazy (FAQ)
  • Návody, jak řešit specifické situace – stručné návody (How-Tos), podrobnější návody (Tutorials) & návody ve formě videí (Screencasts) (U)
  • Jak řešit konkrétní problémy – Troubleshooting
  • Sdílené repositáře – doplňky, komponenty, ukázky kódu, rozšíření (U)
  • Co se chystá a děje v zákulisí? – blog lidí kolem frameworku, case studies, galerie webů (U)
  • Jak se podílet na tvorbě obsahu?
  • Jak se podílet na vývoji?

Ale také z pohledu, co má nabídnout pisatelům:

  • Přidání vlastního obsahu – jmenovitě kódů, návodů, screencastů, řešení konkrétních problémů, blogpostů (U)
  • Přidání feedbacku k obsahu – komentáře, bugreporty
  • Možnost opravení a doplnění obsahu – web jako platforma otevřená všem, viz také oprávnění popsané níže
  • Centrální řízení – tj. rozdělování a evidence úkolů a zodpovědností

Zároveň si třeba říci, že nic víc by na web patřit nemělo.

Uživatelský vs. oficiální obsah a oprávnění

Veškerý obsah na webu půjde rozdělit do dvou kategorií: uživatelský vs. oficiální. Technicky vzato se liší tak, že uživatelský obsah bude (i vizuálně) podepsaný autorem, oficiální obsah bude „anonymní“ (dílčí autory zjistíte pohledem do historie).

Uživatelský obsah může zakládat jakýkoliv registrovaný uživatel (podle přesných pravidel) a editovat jen jeho autor + úzká skupina moderátorů, kdežto oficiální obsah může zakládat a editovat mnohem širší skupina editorů (čítající samozřejmě i moderátory). O možnost stát se editorem může kdokoliv požádat, standardně se jím stává každý po napsání určitého počtu odpovědí na fóru. Autoři uživatelského obsahu mohou povolit volnější pravidla, třeba přístup pro editory, kteří jim mohou opravovat pravopisné chyby.

Z čtenářského hlediska se tak uživatelský obsah jeví jako série ucelených článků (i vícestránkových). Čtenář vnímá, že uváděné informace nejsou oficiálním stanoviskem. V přehledu výše je uživatelský obsah indikován (U).

Z oficiálního obsahu nevedou odkazy na uživatelský, naopak se odkazuje běžně.

Musím zdůraznit, že tento koncept neodpovídá konceptu Wiki. Mám za to, že nasazení Wiki u opensource projektů se neosvědčuje a vede ke vzniku netříděného nepořádku.

Podrobnější rozbor

Základní informace o frameworku, akcích, novinkách – základ je již k vidění na https://nette.org, takže nevyžaduje hlubší komentář. V plánu je přidat jednoduché rozhraní na vkládání nadcházejících akcí, zobrazovat nově přidaný obsah a rozšířit stávající informace, jako třeba učinit některé položky na stránce O frameworku rozklikávací.

Rychlé seznámení s frameworkem představuje sekce Introduction dokumentace (Getting Started, Downloading & Installation, Create Your First Application!). Jde o jediný tutorial, který bude spadat do oblasti oficiálního obsahu.

Podrobná programátorská příručka je také součást oficiálního obsahu. Informace v ní budou ze tří oblastí:

  1. obecné info, introduction, FAQ, troubleshooting, slovníček, changelog + jak updatovat
  2. kapitoly podle tematických oblastí, jako třeba: formuláře, routování, šablony, MVP. Kapitoly mohou mít i podkapitoly (odhalí se při rozkliknutí). Vše důležité je ale dostupné už z nejvyšší úrovně.
  3. popisy tříd jako: Image, String

Především zde platí, že struktura se musí odvíjet od toho, co má smysl pro čtenáře. Tedy vytvářet „kapitolu“ o třídě String je nesmysl, stejně i naopak je nesmysl vytvářet „popis třídy“ PresenterRequest, kterou je vhodnější zmínit v kapitole o tvorbě MVC aplikací. Vzorový příklad tohoto dělení lze vidět na http://codeigniter.com/…ide/toc.html.

Každá stránka má titulek, perex a nanejvýš dvě úrovně nadpisů. Základní pravidla pro psaní stránek sepíšu, konkrétní se vyspecifikují za chodu. Vzorová podoba obsahu jednotlivých kapitol, co se týče jejich délky a četnosti ukázek kódu, je Zend, např. http://www.framework.zend.com/…duction.html. Vzorová podoba samotných příkladů kódu viz jQuery http://docs.jquery.com/Core.

Pár antipříkladů: příliš krátké a členité, příliš dlouhé.

API reference – přehled tříd a metod – hotová záležitost. Webová aplikace podporuje přímo odkazování do API (viz syntax), jakmile bude hotová příručka programátora, doplním i zpětné odkazy z API reference.

FAQ a slovníček pojmů bude součástí oficiální části odkazované v Příručce programátora. Obojí musí mít podobu stručných odpovědí v limitu cca dvou odstavců.

Jak řešit konkrétní problémy aneb Troubleshooting (alternativně Knowledge base). Součást oficiální dokumentace, strukturou připomíná FAQ, narozdíl o něj je libovolně obsáhlá a odpovědi jsou delší, nacházející se na samostatných stránkách. Příkladů je spousta, např. http://kb.eset.com/.


Jak řešit specifické situace – dostáváme se do vod uživatelského obsahu. Každý článek dostane nálepku:

  • Tutorial: výukové příspěvky popisující krok za krokem řešení úlohy; tagem lze specifikovat obtížnost
  • How-To / Cookbook: krátké příspěvky popisující jednu specifickou úlohu
  • Screencast: vizuální forma návodů

Sdílené repositáře doplňků, komponent, ukázek kódů a rozšíření patří mezi stěžejní části webu. Jakožto uživatelský obsah se řadí po bok tutorialů a how-tos.

Přičemž veškerý uživatelský obsah mohou čtenáři doprovázet komentáři a hodnotit hvězdičkami. Příkladem nechť nám je třeba http://bakery.cakephp.org/. Je preferováno, aby autoři obohatily stránky piktogramem specifických rozměrů, zejména v případě komponent, tutoriálů a screencastů.

Co se chystá a děje v zákulisí? Tyto informace poskytuje především blog. Publikovat může každý, kdo o to požádá. Narozdíl od dokumentace jde o neformální, osobní žánr. Komentáře pod blogposty mohou, stejně jako jinde na webu, psát pouze registrovaní uživatelé. Mimo blogů je tu galerie webů používajících Nette, nebo případové studie.

Jak se podílet na tvorbě obsahu? Možnost přidávat nový uživatelský obsah musí být maximálně jednoduchá a přímočará, aby bylo hned jasné, co, kam a jak psát, proto vytvořím formuláře a mustry pro přidání pluginu, návodu atd. Vše popisuje nápověda, včetně syntaxe a pravidel strukturování textu. Pro autory screencastů bude připraven postup, jak video doplnit o standardizové intro, outro a stránky oddělující kapitoly.

Pro autory podílející se na tvorbě oficiálního obsahu bude existovat samostatná nápověda, kde by měly platit přísnější měřítka.

Verzování

Veškerý obsah lze štítkovat (tagovat) a jedním z tagů může být i číslo verze frameworku, pro který je psán. Příručka programátora a API bude navíc existovat na webu ve více kopiích pro příslušnou verzi (verze je součástí URL). Jelikož jsme nyní v poměrně výhodné situaci, kdy existuje dostatečně stabilní řada 0.9.x a na novinkové 1.0 se teprve začíná pracovat, není potřeba verzování vůbec řešit. Tj. v tuto chvíli stačí tvořit jedinou dokumentaci pro poslední stabilní verzi.

Jakmile vyjde první verze 1.0, celou Příručku programátora zduplikuji a přesunu na URL s číslem verze. Druhá kopie se bude moci přepisovat podle nové verze.

Adresářová struktura a subdomény

Současné rozdělení subdomén je následující:

Centrální řízení

Momentálně probíhá na stránce https://dev.nette.org/cs/ndp a v diskusních vláknech spojených s jednotlivými stránkami. TODO seznam bych přepsal do formy aplikace, bode-li tato poptávka. Pokud jde o diskusní vlákna, zdá se mi, že bude vhodnější namísto propojení s fórem využít systém komentářů pod články. S tím, že komentáře editorů by byly oddělené (zřejmě využitím tabů), leč běžnému čtenáři neviditelné.

antos
Člen | 1
+
+1
-

Šlo by API propojit s diskuzí? Resp. něco na způsob online PHP manuálu, kde pod každou funkcí/metodou jsou oficiální příklady použití a je možno psát uživatelské příklady, poznámky? Občas je to laborování a studování zdrojového kódu, přitom jednoduchý příkládek vás hned nakopne.

Jan Tvrdík
Nette guru | 2595
+
0
-

Komentáře ke každé stránce by měly stačit.

Inza
Člen | 330
+
0
-

Akutně potřebujeme zmoderovat komentáře – můžete to někdo kdo máte příslušné právo prosím udělat? Potřeboval bych vyrušit všechny komentáře u QS – jsou nerelevantní a kazí nám pověst – lidi totiž nepochopili, že je QS under reconstruction a pořádně je to zmátlo. Obzvláště u stránky: https://doc.nette.org/cs/quickstart

Tak to prosím někdo s dotyčnými právy odstraňte, díky.

Kenn
Člen | 110
+
0
-

Možná by bylo lepší na začátek každé stránky napsat, že je to zatím nedokončený koncept. Tím by se předešlo mnoha problémům a nutnosti mazat nerelevantní komentáře.

iguana007
Člen | 970
+
0
-

jj super Inzo – luxusní QuickStart :)

Jan Tvrdík
Nette guru | 2595
+
0
-

Mám nový požadavek na dokumentační engine (tj. na Davida): doplnit tiskový stylopis.

Jan Tvrdík
Nette guru | 2595
+
0
-

Budeme nějak řešit rozdělení tutoriálů na více částí? V současnosti jsou tutoriály ve formě dlouhých nudlí, což mi nepřijde ideální. Při rozdělení tutoriálu na více samostatných stánek vzniká problém se strukturou URL. Logicky by to mělo vypadat asi takto: https://wiki.nette.org/cs/tutorialy/navstevni-kniha-vyuzivajici-ajax/vypis-prispevku-a-jejich-pridavani, ale praktické to rozhodně není.

gawan
Člen | 110
+
0
-

A čo je zlé na „dlouhých nudlích“? Keď som ich čítal, nemal som s tým žiadny problém. Práve naopak zdalo sa mi to takto dobré.

  • nemusel som sa preklikávať na ďalšie časti
  • na posúvanie po texte mi stačilo page up/page down, nebolo treba používať myš
  • nemusel som hľadať linku „…tu čítajte ďalej…“
  • na začiatku je obsah cez kotvy, a to ma okamžite presunulo na danú časť, aj keby mi spadol internet alebo by tutoriál bol nedostupný
  • dá sa to uložiť ako jedna stránka, pre prípad čítania offline.

Ja vidím len samé výhody, keď je to „dlouhá nudle“. Pre mňa je to takto veľmi praktické.

David Grudl
Nette Core | 8218
+
0
-

Rozdělení se bude řešit nějakou značkou v textu, takže zatím klidně piště dlouhé nudle.

Jan Tvrdík
Nette guru | 2595
+
0
-

URL na „Troubleshooting“ bude doc.nette.org/troubleshooting/some-problem nebo radši doc.nette.org/kb/some-problem nebo radši doc.nette.org/ts/some-problem nebo radši …?

Petr P. slíbil napsat Troubleshooting články pokrývající nejčastější chyby (nefunkční mod_rewrite, nesmazaný temp, …).

David Grudl
Nette Core | 8218
+
0
-

Viděl bych to na doc.nette.org/troubleshooting/some-problem, protože ts je nejasné a délka URL nevadí.

paranoiq
Člen | 392
+
0
-

doc.nette.org/problems/some-problem ?

Jan Tvrdík
Nette guru | 2595
+
0
-

Srovnávej spíš s https://doc.nette.org/cs/.

Bertram
Člen | 75
+
0
-

antos napsal(a):

Šlo by API propojit s diskuzí? Resp. něco na způsob online PHP manuálu, kde pod každou funkcí/metodou jsou oficiální příklady použití a je možno psát uživatelské příklady, poznámky? Občas je to laborování a studování zdrojového kódu, přitom jednoduchý příkládek vás hned nakopne.

Jan Tvrdík odpověděl: Komentáře ke každé stránce by měly stačit.

Omlouvám se ,ale já tu odpověd nepochopil,protože jsem žádné komentáře k API nenašel.

Já osobně bych nějakou osvětu k API velmi přivítal.Samozřejmě vím,že tam něco málo vysvětleno je,bohužel pro mě anglicky a strojový překlad je většinou mizerný.

Samozřemě mám možnost se například v sekci začátečníci začít ptát na určité části kódu z API,ale nevím jestli je to šťastné řešení.

arron
Člen | 464
+
0
-

Pokud chce dneska nekdo opravdu programovat, tak je pro nej IMHO anglictina naprostou nezbytnosti a druhou mateřtinou…

Bertram
Člen | 75
+
0
-

A já blbec si naivně myslel,že jde o dokumentaci v češtině,zřejmě musím svůj koníček na několik let přerušit (-:

arron
Člen | 464
+
0
-

S API dokumentaci je ten „problem“, ze se generuje primo ze zdrojoveho kodu a tam se komentare delaji ze zasady anglicky:-)

Bertram
Člen | 75
+
0
-

Takže zpět k podstatě mého dotazu,opravdu se mnou nikdo nesdílíte názor,že osvěta API referencí
by mohla být přínosem?

Podle mého jde dost často nauka FW a PHP samotného ruku v ruce.A porozumění zdrojovým kódům je základem využití FW se vší jeho silou. O zdokonalování v PHP nemluvě.

Honza Marek
Člen | 1664
+
0
-

Aby se lidi učili framework z api dokumentace je nesmysl.

arron
Člen | 464
+
0
-

Ja uz jsem mozna „stara skola“, ale myslim si, ze clovek by se mel nejdriv naucit PHP, udelat si v nem par projektu bez jakehokoliv fw, a pak se teprve pustit od studia nejakeho toho frameworku. Kdyz budes totiz prochazet zdrojove kody a nebudes ovladat zaklady, tak je Ti to stejne k nicemu:-) Naopak s patricnymi znalostmi najdes spoustu zajimavych konstrukci, ktere treba nemusi byt uplne bezne pouzivane, ale v danem kontextu jsou vhodne.

Jinak studiem zdrojaku muzes zjistit, jak resi dany problem ostatni, ale nemam pocit, ze se z toho clovek nauci jazyk. Syntaxi musis mit proste zvladnutou predem…

kravčo
Člen | 721
+
0
-

Jeden o koze, druhý o voze…

Droid
Člen | 92
+
0
-

Bude dneska slibovaná dokumentace?