2010-10-29 17 views
31

¿O ellos y simplemente no está en la fuente? Realmente me gustaría obtener algo que evite que js-doc-toolkit se vuelva loco cada vez que analiza jQuery. También significa que no puedo documentar correctamente cualquier código usando jQuery como una dependencia sin al menos poner algunos bloques js-doc repetitivos, que no documentan adecuadamente la estructura de jQuery. ¿Hay alguna solución común de la que no tenga conocimiento? He intentado googlear, por cierto.¿Por qué jQuery no usa JSDoc?

+0

duplicado de [Formato de documentación jQuery] (http://forum.jquery.com/topic/jquery-documentation-format);) (Alas, no hay respuesta allí) –

+2

un poco de una actualización, pero encontré que [Docco] (http://jashkenas.github.com/docco/) es mucho más fácil de documentar con JS. Es realmente tedioso encontrar la etiqueta JSDoc correcta. Personalmente, encuentro que la estrategia de documentación de Docco es más simple y realista. También está [Rocco] (https://github.com/rtomayko/rocco#readme), que, como gema, funcionará mejor con Cygwin, ya que no se requiere NPM. – hlfcoding

+2

Parece que Docco es una buena idea, excepto por esto: "Solo se procesan los comentarios de una sola línea: se ignoran los comentarios de bloque". Me parece que los comentarios en bloque son los que definitivamente deseas procesar si estás escribiendo documentos API, ya que es más fácil escribir largos fragmentos de explicación en ellos. – user4815162342

Respuesta

30

Haré un tiro en la oscuridad aquí ya que no puedo hablar por el equipo jQuery de por qué I no usaría JSDoc. JSDoc, al menos la última vez que lo verifiqué, no tenía ninguna forma clara de admitir la sobrecarga de métodos (o el cambio de parámetros ... el nombre que quiera darle aquí) y jQuery usa esto por todos lados. Vamos a dar un ejemplo sencillo común con .animate():

.animate({ height: 5 }) 
.animate({ height: 5 }, 100) 
.animate({ height: 5 }, 100, "linear") 
.animate({ height: 5 }, 100, "linear", func) 
.animate({ height: 5 }, 100, func) 
.animate({ height: 5 }, func) 
.animate({ height: 5 }, { duration: 100, queue: false }) 
.animate({ height: 5 }, { duration: 100, easing: "linear" }) 
.animate({ height: 5 }, { duration: 100, easing: "linear", complete: func }) 

Todas estas son válidos, ya que parameter types are checked and shifted as needed para apoyar como cualquier escenarios de sobrecarga como sea posible ... esto sólo confunde el infierno fuera de jsdoc, no hay manera limpia para agregar estos parámetros opcionales a la documentación. Por favor corrígeme si esto ha cambiado, pero la última vez que miré (y probablemente la última vez que el equipo echó un vistazo) todavía era el caso.

Otra posible consideración es cómo se generan algunos métodos cuando se ejecuta jQuery, por ejemplo (uno de muchos), casi todos event handler shortcuts son generated in a loop comportamiento similar para otros métodos ... ¿cómo se documentarían estos? La generación de JSDoc simplemente no funciona bien aquí.

+1

Creo que la incapacidad de documentar los parámetros para que sea totalmente correcta no es la mayor preocupación. Me preocupa más por qué los mismos objetos y métodos no pueden documentarse, por lo que JSDoc al menos sabe que existen y dónde hacer referencia. Y un beneficio potencial de generar documentos para un proyecto de jQuery es que le resulte más fácil actualizarlo de grandes cambios a la fuente jQuery. ¿Hay un mejor generador de documentos por ahí? He oído hablar de Docco ... – hlfcoding

+0

@hlfcoding - No estoy seguro de si hay una mejor alternativa, honestamente vivo en Visual Studio la mayor parte del tiempo, y hay '-vsdos.js' provisto que se usa ... algunos de los chicos o comunidad de Microsoft generan: http://stackoverflow.com/questions/2323366/jquery-1-4-2-vsdoc El editor depende de esa documentación para decirle cuáles son los parámetros, si son inexactos todo el tiempo (y se generan varios métodos en la mosca ... ¿cómo se documenta en la fuente?) entonces no son muy útiles. –

+0

@Nick Me preguntaba lo mismo. Utilizo los archivos '-vsdoc.js' y pensé:" ¿Por qué Microsoft tiene que hacer esto de manera diferente a la mayoría? " No consideré que fuera por la "comprobación de tipos" de jQuery. Buen ejemplo en ese frente. Nota al margen: @hlfcoding tiene puntos de repetición '666'. –

4

Si bien no puedo agregar nada más que otros no tengan con respecto a la pregunta original, puedo proporcionar un enlace a algo que PUEDE documentar automáticamente jQuery.

Lo hace ejecutándolo en un entorno de tiempo de ejecución y luego analizando los árboles resultantes. Al igual que JSDoc, utiliza un Rhino modificado. Está en su infancia, pero espero que esto sea útil para alguien. :)

https://bitbucket.org/nexj/njsdoc

+0

JSDoc realiza análisis estáticos. – kzh

+0

Sí lo hace. No estaba diciendo que no fuera así, si es así como lo tomaste. Debería haber aclarado mi punto aquí, que era que NJSDoc realiza análisis en tiempo de ejecución (dinámico) en lugar de análisis estático. Intentando alcanzar el mismo nivel (o mayor) de documentación con menos (idealmente ninguna) anotaciones de sugerencias repetitivas. –

Cuestiones relacionadas