Как документировать приложение Ember?
Я использую YUIdoc. Что-нибудь еще? Ну может ли кто-нибудь сказать мне, как правильно документировать модель, контроллер, микс и вид в Ember?
Например, я пытаюсь документировать это:
App.newModel = DS.Model.extend({
someProperty: DS.attr('string')
});
App.myController = Ember.Controller.extend({
someProperty: ...
});
App.myMixin = Ember.Mixin.create({
someProperty: ...
});
EDIT Теперь я использую YUIdoc вместо jsdoc3
Ответы
Ответ 1
Вам будет сложно использовать JSDoc для приложений Ember, потому что JSDoc анализирует код, а не только комментарии. Ember использует свой собственный классный синтаксис, поэтому JSDoc не сможет распознать много кода. Я лично использую YUIDoc, что и использует команда Ember. (YUIDoc также позволяет импортировать другую документацию для разрешения внешних ссылок, например DS.Model
.) Существуют и другие альтернативы. Эта страница дает некоторое сравнение и дает диаграмму различий, которая показывает, какие инструменты анализируют комментарии, а не исходный код.
Кроме того, я понимаю, что я не отвечаю на ваш конкретный вопрос. Но это должно помочь ответить на вопрос о том, какие альтернативы там, что может полностью исключить ваш вопрос JSDoc.
Ответ 2
Я нашел ember-style-guide полезный для меня. Но с небольшими изменениями:
-
После оператора @module
я пишу полный путь к нему, начиная с имени проекта. Это дает мне возможность ссылаться на него. Например:
/**
* @module dashboard/models/node
* @augments module:ember-data/system/model
* @public
*/
export default DS.Model.extend({
/**
* @type {module:dashboard/models/node}
*/
parent: DS.belongsTo("node"),
/**
* @type {Array<module:dashboard/models/node>}
*/
childs: DS.hasMany("node"),
/**
* @method
* @return {module:dashboard/models/node}
*/
getFirstChild() {
// ...
}
});
-
После инструкции @augments
я пишу полный путь к модулю, из которого расширяется текущий модуль. Если модуль распространяется от модуля третьей части, я пишу полный путь этого модуля (получая его из инструкции import
). Я не уверен, что это правильно, потому что в созданном документе нет ссылок на эти модули. Я не нашел способ сделать ссылку на них. Честно говоря, я не уверен, что это возможно, потому что разные проекты могут использовать разные механизмы комментариев doc, и нет способа связать модули (классы) по именам.