API Doc Smackdown

Post on 25-May-2015

4.483 views 5 download

Tags:

description

The Yahoo UI (YUI) Library is well known for its excellent documentation. One of its secrets is YUI Doc, a Python application used at build time to generate API documentation for JavaScript code. But is YUI Doc really better than JS Doc Toolkit -- an elder application, written in JavaScript, that also generates API documentation. When should you choose one over the other? Which is the better choice for your project?

Transcript of API Doc Smackdown

API Doc Smackdown

YUI Doc versus JS Doc Toolkit Monday, September 14, 2009 - 2:25-3:25p

API Doc Smackdown

The Yahoo UI (YUI) Library is well known for its excellent documentation. One of its secrets is YUI Doc, a Python application used at build time to generate API documentation for JavaScript code.

But is YUI Doc really better than JS Doc Toolkit? -- an elder application, written in JavaScript, that also generates API documentation. When should you choose one over the other? Which is the better choice for your project?

In this session you will learn:

* How API generators work, and how documentation helps;* When to use YUI Doc and when to use JS Doc Toolkit;* More about alternatives to comment-based documentation.

http://www.slideshare.net/ted.husted

Old School

push RA ; push register A to retain the subtotalpop RB ; pop register B to recall the total

Source Code Stakeholders

Solution ArchitectsProduct ManagersQA EngineersMaintenance EngineersCustomers

Why not doc?

Embedded comments clutter up the codeExternal document is difficult to synchronize

http://java.sun.com/j2se/javadoc/writingdoccomments/

http://java.sun.com/j2se/javadoc/writingdoccomments/

http://www.j2ee.me/javase/7/docs/api/index.html?overview-summary.html

Some IDEs with API Doc Support

Eclipse Aptana (ScriptDoc)

Visual Studio Resharper for VSIDEA IntelliJ

Any others?

http://ndoc.sourceforge.net/

http://sandcastle.codeplex.com/

http://www.codeplex.com/DocProject

http://en.wikipedia.org/wiki/Comparison_of_documentation_generators

http://www.phpdoc.org/

http://rdoc.rubyforge.org/

http://www.birt-exchange.org/documentation/JavaComponents10/JSAPI-JSdoc/

http://developer.yahoo.com/yui/docs/

http://developer.yahoo.com/yui/yuidoc/

http://developer.yahoo.com/yui/yuidoc/

http://developer.yahoo.com/yui/yuidoc/

http://developer.yahoo.com/yui/yuidoc/

http://developer.yahoo.com/yui/yuidoc/

http://developer.yahoo.com/yui/yuidoc/

YUI Doc Pros and Cons

ProsConcise set of tagsUsed by YUI library supported by YUI Team

ConsYUI specific idiomsOvershadowed by YUI Small community

http://developer.yahoo.com/yui/yuidoc/

http://code.google.com/p/jsdoc-toolkit/

http://code.google.com/p/jsdoc-toolkit/w/list

http://code.google.com/p/jsdoc-toolkit/w/list

http://code.google.com/p/jsdoc-toolkit/

http://code.google.com/p/jsdoc-toolkit/

http://docs.jproton.com.br/

http://lib.metatype.jp/madtemplate/

http://projects.vinces.ca/jsdocs/

http://code.google.com/p/jsdoc-toolkit/wiki/Templates

http://code.google.com/p/jsdoc-toolkit/wiki/Templates

http://code.google.com/p/jsdoc-toolkit/wiki/Templates

http://developer.yahoo.com/yui/yuidoc/#custom

D:\opt\Yahoo\yuidoc_1.0.0b1\yuidoc\template\main.tmpl

JsDoc Toolkit Pros and Cons

Pros

Deep and broad tab set Used by many projects Well supported

Cons

Sketchy documentationLacks "anchor" projectSole developer

Time for a Test Drive ...

Installing YUI Doc

Python 2.5C:\Python25

SetupTools $python_home\Scripts\easy_install* (executables)

.> easy_install pygments

.> easy_install simplejson

.> easy_install cheetah

YUI Doc Distributionbin/example.batbin/example.sh

http://python.org/download/releases/2.5.4/

http://www.slideshare.net/ted.husted

python-2.5.4.msi

http://www.slideshare.net/ted.husted

http://pypi.python.org/pypi/setuptools

setuptools-0.6c9.win32-py2.5.exe

C:\Python25\Scripts\easy_install

1. easy_install pygments2. easy_install Cheetah3. easy_install simplejson

c:\opt\yahoo\yuidoc_1.0.0b1\yuidoc\bin\example.bat

c:\opt\yahoo\yuidoc_1.0.0b1\yuidoc\bin\example.bat

Installing JsDoc Toolkit

Java 1.5 or 1.6 JsDoc Distribution

appconfjavatemplates

> java -jar jsrun.jar app\run.js -a -t=templates\jsdoc -r app/frame.js app\frame app/handlerout/jsdoc

index.htmlfiles.htmlsymbols\

http://code.google.com/p/jsdoc-toolkit/

file:///D:/opt/GoogleCode/jsdoc_toolkit-2.3.2/jsdoc-toolkit/out/jsdoc/index.html

YUI Doc vs JsDoc Toolkit

YUI Doc ProsConcise set of tabsUsed by YUI library Supported by YUI Team

Js Doc Pros

Deep and broad tag set Used by many projects Well supported

YUI Doc ConsYUI specific idiomsOvershadowed by YUI Small community

Js Doc Cons

Sketchy documentationLacks "anchor" projectSole developer

http://dojodocs.uxebu.com/

http://scriptdoc.org/

Style GuideUse <code> style for keywords and nameUse in-line links economicallyOmit parentheses for the general form of methods and constructorsOkay to use phrases instead of complete sentences, in the interests of brevity.Use 3rd person (descriptive) not 2nd person (prescriptive)Method descriptions begin with a verb phrase.Class/interface/field descriptions can omit the subject and simply state the object. Use "this" instead of "the" when referring to an object created from the current class. Use "this" instead of "the" when referring to an object created from the current class.Avoid Latin.

http://code.google.com/p/jsdoc-toolkit/

Please complete an evaluation.

Questions?

http://www.slideshare.net/ted.husted