|
Milline on parim formaat JavaScripti koodi dokumenteerimiseks ja miks? JSdoc, PDoc, mõni muu või hoopis enda mõeldud standard? Ma ise kasutan PDoc formaati, kuid huvitab, et mida teised kasutavad ja eriti, et miks just nii. |
|
Minu jaoks on põhikriteeriumiks, et dokumenteerimine oleks võimalikult kerge. Kui dokumentatsiooni generaator nõuab, et sa sisestaksid hulgaliselt spetsiaalset markupi, siis muutub dokumenteerimine piinarikkaks ja keegi ei viitsi seda teha. Kuid peab ütlema, et seni on mul veel leidmata vahend, mis oleks piisavalt mugav. Näiteks JSDoc ja analoogsete vahendite juures on üheks suuremaks probleemiks, et sa pead dokumentatsiooni sisse kirjutama HTML-i, näiteks nii:
PDoc näikse vähemasti selle koha pealt oluliselt parem. Kuid esmakordsel süvenemisel PDoc-i hakkas mulle kohe silma, et ma pean pidevalt üle kordama klassi ja funktsiooni nime. Näide PrototypeJS-i koodist:
Parser võiks ju ise aru saada, et meetodi nimi on "clone" ja ta kuulub Array klassi. Muidu tundub see PDoc päris tubli, aga ta õhkab minu jaoks kuidagi selle järele, et see on tehtud PrototypeJS-i dokumenteerimiseks ja mitte eriti millegiks muuks. (Aga see on pelgalt minu esmakordse pealevaatamise tunne.) Ma ise kasutan ext-doc, kuna ma suurema osa koodist kirjutan ExtJS raamistikus. Põhimõtteliselt on tegu JSDoc derivaadiga, koos kõigi oma halbade külgedega, pluss veel mõned lisaks - aga vähemasti mõistab ta ExtJS-i koodi. Seesama clone näide on just päris hea PDoc'i ilmestamiseks, kuna parser ei saa funktsiooni deklaratsiooni alusel kuidagi arvata, et tegu on Array klassi meetodiga. Funktsioonide ja objektide nimetuste kordamine on muidugi tüütu overhead, kuid see päästab näiteks ettekirjutatud kodeerimisstiilist - stiil ei pea olema dokumenteerimise parserile arusaadav. Lisaks kasutab PDoc HTML'i asemel Markdown'i ja see on muidugi ka väga mugav.
(Sep 11 '10 at 20:07)
Andris
Niiviisi eraldiseisvana vaadates on parseril jah raske aru saada, aga eespool failis on öeldud "class Array" ja selle alusel võiks kenasti järeldada, et kõik järgnevad funktsioonid on selle klassi meetodid. Nii on see ju 99% juhtudest; eraldi markupiga võiks tähistada hoopis erandjuhud kui see nii pole.
(Sep 22 '10 at 07:55)
Rene Saarsoo ♦♦
|
|
Maitse asi vist. PDoci süntaks kasutab mõnevõrra ebatraditsioonilist lähenemist. Java või PHP(doc) maailmast tulnud inimesel on JSDoc-ist lihtsam aru saada. Pealegi toimub JSDoci projektis vilgas arendustegevus juba pikemat aega. Oht, et nad ootamatult ära kaovad, on üsna väike. |
|
Mu eelmisest vastusest saati on juhtunud see, et kirjutasin ise JavaScripti dokumenteerimiseks programmi JSDuck. See suuresti lahendab probleemid mida ma eelnevalt kirjeldasin. Hetkel on JSDuck suunatud ExtJS-i raamistikus kirjutatud koodi dokumenteerimisele, kuid pole otsest takistust seda ka väljaspool ExtJS-i kasutada. Oleksin üsnagi huvitatud tagasisidest kui kellegil selline huvi on. |
