Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Используете ли вы JSDoc ? (https://javascript.ru/forum/offtopic/24420-ispolzuete-li-vy-jsdoc.html)

Livaanderiamarum 29.12.2011 13:30

Используете ли вы JSDoc ?
 
JSDoc это генератор документации. Часто встречал его в кодах известных библиотек. Но лишь недавно узнал что в некоторых редакторах он влияет на авто дополнение кода. Я думаю если создавать что-то серьезное, даже для себя, то обязательно должна быть документация. Потому что через неделю ты помнишь как работает код, а через месяц уже не помнишь. Раньше я делал обычными комментариями. Щас подумал что лучше юзать JSDoc. Что думаете об этом?

http://www.artlebedev.ru/tools/techn...eclipse-spket/

а вот объяснение тегов на русском

http://vingrad.ru/blogs/Alix/files/2...discussion.pdf

Gvozd 29.12.2011 23:58

С недавних пор - использую.
Ранее использовал только PHPDoc
За ссылки спасибо

melky 30.12.2011 00:30

сейчас начал использовать. классная штука. до этого я пытался сделать то же самое, но через комментарии (не знал, что существует JSDoc)

Livaanderiamarum 30.12.2011 00:40

Цитата:

Сообщение от melky (Сообщение 147183)
до этого я пытался сделать то же самое, но через комментарии (не знал, что существует JSDoc)

ой как знакомо))

trikadin 30.12.2011 02:12

Цитата:

Сообщение от melky
сейчас начал использовать. классная штука. до этого я пытался сделать то же самое, но через комментарии (не знал, что существует JSDoc)

Да-да, плюс один) У меня была система xml-комментирования)

Livaanderiamarum, теперь буду пользоваться этим..)

Nekromancer 30.12.2011 02:16

Да, таки клёво, в WebStorm тоже вроде работает :)

trikadin 30.12.2011 03:23

Кстати, имхо, куда более клёвая документация - вот здесь:
http://code.google.com/p/jsdoc-toolkit/wiki/

Кстати, а у разрабов браузеров нет желания использовать JSDoc в целях ускорения кода? Например, смотреть типы переменных по ним...

devote 30.12.2011 07:20

чето не очень, элементарно вбил ему тип CSSStyleDeclaration, показывает старые свойства CSS тоесть вместо borderRadius, показывает MozBorderRadius и т.д. Очень старая дока у них вбита.

Gozar 30.12.2011 08:07

Использую где-то около года.

Кто как расписывает аргументы в виде объекта?

Я делаю так:

/**
* @param {Object} o
* @param {String} o.title
*/
function (o) {

}

melky 30.12.2011 09:19

Gozar, а как ещё ?

Цитата:

Сообщение от devote (Сообщение 147297)
чето не очень, элементарно вбил ему тип CSSStyleDeclaration, показывает старые свойства CSS тоесть вместо borderRadius, показывает MozBorderRadius и т.д. Очень старая дока у них вбита.

HTMLStyleSheet вообще ничего не выдаёт

Gozar 30.12.2011 10:32

Цитата:

Сообщение от devote (Сообщение 147297)
элементарно вбил ему ... Очень старая дока у них вбита.

Кому ему?
У кого у них?

Я может быть покажусь не очевидным, но предмет разговора отсутствует, хоть гадалку зови.

Цитата:

Сообщение от melky (Сообщение 147306)
Gozar, а как ещё ?

Начни разговор с ответа.

Kolyaj 30.12.2011 10:42

Цитата:

Сообщение от Nekromancer
Да, таки клёво, в WebStorm тоже вроде работает

WebStorm по Ctrl+Q на переменной/функции показывает её описание/параметры/возвращаемое значение из JSDoc-ов.

Gozar 30.12.2011 10:52

Цитата:

Сообщение от Kolyaj (Сообщение 147314)
WebStorm по Ctrl+Q на переменной/функции показывает её описание/параметры/возвращаемое значение из JSDoc-ов.

var a = {};
/**
 * 
 * @param a
 */
a.g = function (a) {

} 
a.g


Ничего не выводит.

Kolyaj 30.12.2011 11:04


Gozar 30.12.2011 11:07

Значит PHPStorm этого ещё не умеет :'(

В PHPStorm чёй-то странное, где-то выводит где-то нет, хм.

Nekromancer 30.12.2011 11:46

Цитата:

Сообщение от Kolyaj
WebStorm по Ctrl+Q на переменной/функции показывает её описание/параметры/возвращаемое значение из JSDoc-ов.

Спасибо :)

Gozar 30.12.2011 12:14

Пока предположение почему работает не везде - слишком сложный объект:
a

потому как на простых по строению объектах работает нормально.

monolithed 30.12.2011 12:29

Цитата:

Сообщение от Gozar
Пока предположение почему работает не везде - слишком сложный объект

может стоит обновится :)

Octane 30.12.2011 12:56

Цитата:

Сообщение от Gozar
Кто как расписывает аргументы в виде объекта?

@cfg, как в ext doc, нету?
/**
 * @class Car.Radio A simple car radio
 * @namespace Car
 * @extends ElectronicThing
 * @cfg {integer} numberOfButtons The number of buttons on this radio.
 * @cfg {boolean} hasCdPlayer True if the radio has a CD player; otherwise false.
 * @constructor
 * @param {object} configObj 
 * An object containing the required configuration options for this class
 * /
Car.Radio = function(configObj) {
  ...
};

Gozar 30.12.2011 12:56

Цитата:

Сообщение от monolithed (Сообщение 147333)
может стоит обновится :)

Так некуда выше вроде как.:-E

Gozar 30.12.2011 14:11

Цитата:

Сообщение от Octane (Сообщение 147338)
@cfg, как в ext doc, нету?

Нашёл, они расписывают объект как я показал выше. В самом конце страницы пример:

/**
  * @param userInfo Information about the user.
  * @param userInfo.name The name of the user.
  * @param userInfo.email The email of the user.
  */
 function logIn(userInfo) {
        doLogIn(userInfo.name, userInfo.email);
 }


Только тип не указали {Object}, поэтому раньше не заметил.

FINoM 31.12.2011 03:26

Подскажите плагин для удобного документирования кода в notepad++. В гугле искал, не нашел, надежда на то, что гугл — лох.

FINoM 31.12.2011 03:29

Или может есть отдельная прога для написания документации, а то эти ваши ИДЕ не перевариваю из-за психологической травмы, вызванной Вижуал Сдудией.

melky 31.12.2011 12:00

наверное, http://code.google.com/p/jsdoc-toolkit/

Riim 01.01.2012 18:57

На работе приучили, недавно стал и для себя использовать.

Как бы в этой штуке расписать ситуацию, когда массив берется из arguments?

var elems = [].slice.call(arguments, 1);

monolithed 01.01.2012 20:41

Цитата:

Сообщение от Riim
Как бы в этой штуке расписать ситуацию, когда массив берется из arguments?

вероятно так:

@param {object} Arguments Object ...


хотя нет.. ;)

Octane 16.01.2012 13:30

А реально расписать вот такое безобразие:
var nameSpace = {};

(function () {

	/**
	 * @constructor
	 * @param {Object} arg
	 */
	function Constructor1(arg) {}
	nameSpace.Constructor1 = Constructor1;

	(function () {
		function method1() {}
		Constructor1.prototype.method1 = method1;
	}());

}());

(function () {

	/**
	 * @constructor
	 */
	function Constructor2() {}
	nameSpace.Constructor2 = Constructor2;

	(function () {
		function method2() {}
		Constructor2.prototype.method2 = method2;
	}());

}());

/**
 * @constructor
 * @param {Object} arg
 */
nameSpace.Constructor3 = function (arg) {};
nameSpace.Constructor3.prototype.method3 = function () {};

чтобы WebStorm нормально структуру отображал?


Такие заморочки, чтобы name у функций был заполнен. И вообще стоит ли с этим заморачиваться? :)


Часовой пояс GMT +3, время: 09:03.