2010-10-29 34 views
31

Ou est-ce qu'ils ne sont pas à la source? J'aimerais vraiment avoir quelque chose qui empêchera js-doc-toolkit de paniquer à chaque fois qu'il analyse jQuery. Cela signifie également que je ne peux pas documenter correctement un code utilisant jQuery comme une dépendance sans au moins mettre des blocs js-doc standard, qui ne parviennent pas à documenter correctement la structure de jQuery. Y a-t-il une solution commune que je ne connais pas? J'ai essayé googling, btw.Pourquoi jQuery n'utilise-t-il pas JSDoc?

+0

en double de [Format de la documentation jQuery] (http://forum.jquery.com/topic/jquery-documentation-format);) (Hélas, pas de réponse là-bas) –

+2

Un peu d'un mise à jour, mais j'ai trouvé [Docco] (http://jashkenas.github.com/docco/) est beaucoup plus facile de documenter JS avec. C'est vraiment fastidieux de trouver le bon tag JSDoc. Personnellement, je trouve la stratégie de documentation de Docco plus simple et plus réaliste. Il y a aussi [Rocco] (https://github.com/rtomayko/rocco#readme), qui, en tant que gem, fonctionnera mieux avec Cygwin, puisque NPM n'est pas nécessaire. – hlfcoding

+2

Docco semble être une bonne idée, sauf pour ceci: "Seuls les commentaires d'une ligne sont traités - les commentaires de bloc sont ignorés." Il me semble que les commentaires de bloc sont ceux que vous voulez absolument traiter si vous écrivez des documents API, car il est plus facile d'écrire de longs fragments d'explication. – user4815162342

Répondre

30

Je vais prendre une photo dans le noir ici car je ne peux pas parler pour l'équipe de jQuery pourquoi I n'utiliserait pas JSDoc. JSDoc, au moins la dernière fois que j'ai vérifié, n'avait aucun moyen propre de supporter la surcharge de méthode (ou le changement de paramètre ... quel que soit le nom que vous vouliez lui donner ici) et jQuery l'utilise partout. Prenons un exemple simple commun avec .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 }) 

Tous ces éléments sont valables, car parameter types are checked and shifted as needed pour soutenir que tous les scénarios de surcharge possible ... ce embrouille tout l'enfer hors de JSDoc, il n'y a aucun moyen propre pour ajouter ces paramètres optionnels à la documentation. Veuillez me corriger si cela a changé, mais la dernière fois que j'ai regardé (et probablement la dernière fois que l'équipe a jeté un coup d'oeil) c'était toujours le cas. Une autre considération potentielle est de savoir comment certaines méthodes sont générées lorsque jQuery s'exécute, par exemple (une parmi beaucoup d'autres), presque tous les generated in a loop comportement generated in a loop similaire pour les autres méthodes ... comment les documenter? La génération JSDoc ne fonctionne vraiment pas bien ici.

+1

Je pense que l'incapacité à documenter les paramètres pour être totalement correct n'est pas la plus grande préoccupation. Je suis plus préoccupé par le fait que les objets et les méthodes eux-mêmes ne peuvent pas être documentés au moins, de sorte que JSDoc au moins sait qu'ils existent et où faire référence. Et un avantage potentiel de générer des documents pour un projet jQuery est d'avoir plus de facilité à le mettre à jour depuis les gros changements vers la source jQuery. Y a-t-il un meilleur générateur de doc là-bas? J'ai entendu parler de Docco ... – hlfcoding

+0

@hlfcoding - Je ne suis pas sûr qu'il existe une meilleure alternative, honnêtement, je vis dans Visual Studio la plupart du temps, et il y a un '-vsdos.js' qui est utilisé ... certains membres de Microsoft ou de la communauté génèrent: http://stackoverflow.com/questions/2323366/jquery-1-4-2-vsdoc L'éditeur dépend de cette documentation pour vous dire quels sont les paramètres, s'ils sont inexacts tout le temps (et plusieurs méthodes sont générées sur la mouche ... comment les documentez-vous dans la source?) alors ils ne sont pas très utiles. –

+0

@Nick Je me demandais juste la même chose. J'utilise les fichiers '-vsdoc.js' et je me suis dit:" Pourquoi Microsoft doit-il faire cela différemment de la plupart? " Je ne pensais pas que c'était à cause de la vérification des paramètres de jQuery. Bel exemple sur ce front. Note latérale: @hlfcoding a '666' rep points. –

4

Bien que je ne puisse rien ajouter d'autre que la question originale, je peux fournir un lien vers quelque chose qui PEUT documenter automatiquement jQuery. Il le fait en l'exécutant dans un environnement d'exécution, puis en analysant les arbres résultants. Comme JSDoc, il utilise un Rhino modifié. C'est à ses balbutiements mais j'espère que c'est utile pour quelqu'un. :)

https://bitbucket.org/nexj/njsdoc

+0

JSDoc effectue une analyse statique. – kzh

+0

Oui, c'est le cas. Je ne disais pas que ce n'était pas le cas, si c'est ainsi que vous l'avez pris. J'aurais dû clarifier mon propos ici, à savoir que NJSDoc effectue une analyse (dynamique) d'exécution au lieu d'une analyse statique. Tenter d'obtenir le même niveau (ou plus) de documentation avec moins d'annotations d'indices standard (idéalement aucune). –