StyleCop и его претензии
От: XJess  
Дата: 01.10.10 16:23
Оценка:
Привет всем!
Поставила дома и на работе StyleCop, натравила на свой проект — для каждого класса, метода он пишет, что те должны иметь header, т. е. /// summary. Я так понимаю, что по умолчанию эта штука будет требовать документировать абсолютно любой файл, класс, метод, свойство и пр. А что Вы документируете?
Re: StyleCop и его претензии
От: Clevelus Россия http://clevelus.ru
Дата: 01.10.10 16:25
Оценка: +1 :)
XJ>А что Вы документируете?

абсолютно любой файл, класс, метод, свойство и пр.
Доброго времени суток! Мир Вам! С уважением Clevelus.
Если мой ответ понравился — оцените, ни на что не влияет, но будет приятно.
Re[2]: StyleCop и его претензии
От: Lloyd Россия  
Дата: 01.10.10 16:34
Оценка:
Здравствуйте, Clevelus, Вы писали:

XJ>>А что Вы документируете?


C>абсолютно любой файл, класс, метод, свойство и пр.


чтобы просто от StyleCop-а отмазаться или реально пишете осмысленный комментарий?
Re[3]: GhostDoc
От: Qbit86 Кипр
Дата: 01.10.10 16:50
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>чтобы просто от StyleCop-а отмазаться или реально пишете осмысленный комментарий?


Если комментарии на английском, то можно использовать GhostDoc. Он умеет парсить идентификаторы, выкусывая шаблонные словосочетания, скажем, «TestWorldModel» снабжает комментарием «Tests model of the world». Плюс умеет копипастить комментарии из интерфейсов, вставляет комментарии в духе Капитана Очевидность для конструкторов, etc. Говорят, Решарпер умеет делать то же самое.
Глаза у меня добрые, но рубашка — смирительная!
Re: StyleCop и его претензии
От: Qbit86 Кипр
Дата: 01.10.10 16:56
Оценка: :)
Здравствуйте, XJess, Вы писали:

XJ>Поставила дома и на работе StyleCop, натравила на свой проект — для каждого класса, метода он пишет, что те должны иметь header, т. е. /// summary. Я так понимаю, что по умолчанию эта штука будет требовать документировать абсолютно любой файл, класс, метод, свойство и пр.


Если поставить максимальный уровень предупреждений и указать в проекте «генерировать XML-документацию», то сам компилятор будет выдавать предупреждения, без всяких StyleCop'ов.

XJ>А что Вы документируете?


Я настроил TreatWarningsAsErrors для предупреждений о документирующих XML-комментариях на сервере интеграции, так что теперь приходится документировать всё публичное.
Глаза у меня добрые, но рубашка — смирительная!
Re[4]: GhostDoc
От: Lloyd Россия  
Дата: 01.10.10 16:57
Оценка: +6
Здравствуйте, Qbit86, Вы писали:

Q>Если комментарии на английском, то можно использовать GhostDoc. Он умеет парсить идентификаторы, выкусывая шаблонные словосочетания, скажем, «TestWorldModel» снабжает комментарием «Tests model of the world». Плюс умеет копипастить комментарии из интерфейсов, вставляет комментарии в духе Капитана Очевидность для конструкторов, etc. Говорят, Решарпер умеет делать то же самое.


И чего ради "пыль в глаза пускать"? Может сразу признаться, что не пишете и отключить это рул нафик?
Re[5]: GhostDoc
От: Qbit86 Кипр
Дата: 01.10.10 16:59
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>И чего ради "пыль в глаза пускать"? Может сразу признаться, что не пишете и отключить это рул нафик?


Нет, мы пишем. Правда, по-русски, так что пользы от GhostDoc'а не очень много. По этим комментариям потом chm-документация генерится.
Глаза у меня добрые, но рубашка — смирительная!
Re[6]: GhostDoc
От: Lloyd Россия  
Дата: 01.10.10 17:03
Оценка:
Здравствуйте, Qbit86, Вы писали:

L>>И чего ради "пыль в глаза пускать"? Может сразу признаться, что не пишете и отключить это рул нафик?


Q>Нет, мы пишем. Правда, по-русски, так что пользы от GhostDoc'а не очень много. По этим комментариям потом chm-документация генерится.


И что, ею пользуются? Или у вас такое требование заказчика?
Re[7]: GhostDoc
От: Qbit86 Кипр
Дата: 01.10.10 17:11
Оценка:
Здравствуйте, Lloyd, Вы писали:

Q>>...По этим комментариям потом chm-документация генерится.


L>И что, ею пользуются? Или у вас такое требование заказчика?


Chm-документация — требование заказчика. Собственно документирование API — внутреннее требование. Куда удобнее написать один раз внятный комментарий, чем каждому члену команды объяснять в Скайпе суть параметров метода или назначение интерфейса.

А у вас что, API не документируют?
Глаза у меня добрые, но рубашка — смирительная!
Re[8]: GhostDoc
От: Lloyd Россия  
Дата: 01.10.10 17:15
Оценка: +1
Здравствуйте, Qbit86, Вы писали:

L>>И что, ею пользуются? Или у вас такое требование заказчика?


Q>Chm-документация — требование заказчика. Собственно документирование API — внутреннее требование. Куда удобнее написать один раз внятный комментарий, чем каждому члену команды объяснять в Скайпе суть параметров метода или назначение интерфейса.


А из кода это не проще понять? Иногда даже msdn сливает рефлектору в плане полезности.

Q>А у вас что, API не документируют?


Нет, у нас не настолько болшая команда, нет необходимости.
Re[3]: StyleCop и его претензии
От: Clevelus Россия http://clevelus.ru
Дата: 01.10.10 17:19
Оценка:
L>чтобы просто от StyleCop-а отмазаться или реально пишете осмысленный комментарий?

StyleCop не используем
Осмысленный, краткий, на русском.
Доброго времени суток! Мир Вам! С уважением Clevelus.
Если мой ответ понравился — оцените, ни на что не влияет, но будет приятно.
Re[4]: StyleCop и его претензии
От: Lloyd Россия  
Дата: 01.10.10 17:20
Оценка:
Здравствуйте, Clevelus, Вы писали:

C>StyleCop не используем

C>Осмысленный, краткий, на русском.

И помогает?
Re[9]: GhostDoc
От: Qbit86 Кипр
Дата: 01.10.10 17:21
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>А из кода это не проще понять?


Из общих соображений — у пользователя API исходного кода может и не быть. В любом случае, приятно видеть summary и список перегрузок во всплывающей подсказке во время вызова, без перехода к определению и вникания в код.

L>Иногда даже msdn сливает рефлектору в плане полезности. :)


Иногда. Но transaction cost велик.

Q>>А у вас что, API не документируют?

L>Нет, у нас не настолько большая команда, нет необходимости.

Команда меньше двух человек? ;)
Глаза у меня добрые, но рубашка — смирительная!
Re[10]: GhostDoc
От: Lloyd Россия  
Дата: 01.10.10 17:24
Оценка:
Здравствуйте, Qbit86, Вы писали:

L>>А из кода это не проще понять?


Q>Из общих соображений — у пользователя API исходного кода может и не быть. В любом случае, приятно видеть summary


Конечно приятно, но вопрос то не в этом, а в том, оправдывает ли это затраченные усилия.

Q>и список перегрузок во всплывающей подсказке во время вызова, без перехода к определению и вникания в код.


Перегрузки и так показываются.

L>>Иногда даже msdn сливает рефлектору в плане полезности.


Q>Иногда. Но transaction cost велик.


Что ты имеешь в виду?

Q>>>А у вас что, API не документируют?

L>>Нет, у нас не настолько большая команда, нет необходимости.

Q>Команда меньше двух человек?


Нет, пять с половиной.
Re[11]: Optimize transaction costs
От: Qbit86 Кипр
Дата: 01.10.10 17:31
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>>>Иногда даже msdn сливает рефлектору в плане полезности. :)

Q>>Иногда. Но transaction cost велик.
L>Что ты имеешь в виду?

Optimize transaction costs.
Глаза у меня добрые, но рубашка — смирительная!
Re[12]: Optimize transaction costs
От: Lloyd Россия  
Дата: 01.10.10 17:35
Оценка:
Здравствуйте, Qbit86, Вы писали:

L>>>>Иногда даже msdn сливает рефлектору в плане полезности.

Q>>>Иногда. Но transaction cost велик.
L>>Что ты имеешь в виду?

Q>Optimize transaction costs.


Я знаю, что такое transaction, но не понимаю, как это относится к тому, что "Иногда даже msdn сливает рефлектору в плане полезности".
Re[13]: Optimize transaction costs
От: Qbit86 Кипр
Дата: 01.10.10 17:40
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>Я знаю, что такое transaction, но не понимаю, как это относится к тому, что "Иногда даже msdn сливает рефлектору в плане полезности".


Я к тому, что затраты на «свериться с документацией» (т.е. не основная, промежуточная, часто выполняемая операция) в случае Рефлектора в сотни раз больше, чем в случае полноценной документации, доступ к которой на расстоянии одного-двух кликов.
Глаза у меня добрые, но рубашка — смирительная!
Re[5]: StyleCop и его претензии
От: Clevelus Россия http://clevelus.ru
Дата: 01.10.10 17:53
Оценка:
L>И помогает?

Сначала кажется лишним, но когда открываешь даже свой собственный код, но после того как его год не видел — очень помогает.
Доброго времени суток! Мир Вам! С уважением Clevelus.
Если мой ответ понравился — оцените, ни на что не влияет, но будет приятно.
Re[14]: Optimize transaction costs
От: Silver_s Ниоткуда  
Дата: 01.10.10 18:14
Оценка: +1
Здравствуйте, Qbit86, Вы писали:

Q>Я к тому, что затраты на «свериться с документацией» (т.е. не основная, промежуточная, часто выполняемая операция) в случае Рефлектора в сотни раз больше, чем в случае полноценной документации, доступ к которой на расстоянии одного-двух кликов.


Полноценная документация это хорошо. Только ее еще надо написать.
Но к полноценной документации нельзя отнести текст который только повторяет названия функций и параметров но только слова разделены пробелами. Если не плпнируется chm делать, то более полезны коментарии описывающие только неочевидности. Так сказать заметки на полях, где грабли лежат, где были сложности, и то что важно но сложно сразу выудить из кода.
Re[15]: Optimize transaction costs
От: Qbit86 Кипр
Дата: 01.10.10 18:18
Оценка:
Здравствуйте, Silver_s, Вы писали:

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


На то есть тег <remarks>.
Глаза у меня добрые, но рубашка — смирительная!
Re: StyleCop и его претензии
От: _FRED_ Черногория
Дата: 01.10.10 20:43
Оценка: +2
Здравствуйте, XJess, Вы писали:

XJ>Поставила дома и на работе StyleCop, натравила на свой проект — для каждого класса, метода он пишет, что те должны иметь header, т. е. /// summary. Я так понимаю, что по умолчанию эта штука будет требовать документировать абсолютно любой файл, класс, метод, свойство и пр. А что Вы документируете?


То, что требуется в каждом конкретном случае. СтайлКоп — лишь инструмент, который необходимо настроить так, как требуется вам, а не образец, под который следует подстраиваться.

Прим этом, ко многим, на первый взгляд, не очевидным, его предупреждениям стоит относиться очень серьёздно (например, об явном указании IFormatProvider там, где можно). И только крепко подумав и осознав, к чему может привести отключение (или, наоборот, не отключение) правила, принять то или иное решение. Для этого помогает курение и медитация над описаниями правил и поиск и прочтение обсуждений правил в тырнетах.
Help will always be given at Hogwarts to those who ask for it.
Re[2]: StyleCop и его претензии
От: Codechanger Россия  
Дата: 02.10.10 06:26
Оценка:
StyleCop используем, но процентов на 35-40.Комментарии, точки в описаниях,порядок методов/свойств,именование переменных. Вкупе с checkin policy
сильно помогает.
Re: StyleCop и его претензии
От: Кэр  
Дата: 03.10.10 05:30
Оценка: 2 (2)
Здравствуйте, XJess, Вы писали:

XJ>Привет всем!

XJ>Поставила дома и на работе StyleCop, натравила на свой проект — для каждого класса, метода он пишет, что те должны иметь header, т. е. /// summary. Я так понимаю, что по умолчанию эта штука будет требовать документировать абсолютно любой файл, класс, метод, свойство и пр. А что Вы документируете?

Все что требует StyleCop — все и комментируем. Отключено только правило запрещающее region в методах.

Сейчас осматривая здоровый такой распределенный сервис с кучей компонент — очень рад, что было такое правило.

Дело в том, что обязательное правило комментрования иногда заставляет писать тавтологию в комментариях, но зато это же правило:
1. Заставляет писать что-то полезное гораздо чаще (если уж начали писать комментарии и есть что полезного написать — то оно будет написано).
2. Стимулирует сам процесс написания и поддержки комментариев (написать комментарий — это не что-то из ряда вон выходящее чему только в книжках учат, а а стандартная часть процесса).
3. Заставляет рефакторить код. Я лично несколько раз с отвращением прекращал писать комментарий и шел пить кофе и думать, как лучше написать код, чтобы такие комментарии оставлять не приходилось.

Очень сильно помогает плагин для Решарпера под StyleCop, рекомендую:
http://stylecopforresharper.codeplex.com/
Re[2]: StyleCop и его претензии
От: Jesmus Россия  
Дата: 04.10.10 06:33
Оценка: +2
Здравствуйте, Кэр, Вы писали:

Кэр>3. Заставляет рефакторить код. Я лично несколько раз с отвращением прекращал писать комментарий и шел пить кофе и думать, как лучше написать код, чтобы такие комментарии оставлять не приходилось.


Так и есть. Неоднократно замечал при написании коммента к функции что она слишком много делает и знает, и вообще "всемогутор" получается — в итоге рефакторинг и более простой и понятный код. Происходит этакое внутреннее code review.

А вообще, написание комментов себя реально окупает через пару месяцев. В итоге у нас код без комметариев просто не пройдет code review, а подобный код в продакшене реально может запороть performance review и отложить повышение на полгода/год. Тем более что задалбывает это только первое время. Потом как-то втягиваешься и начинаешь еще при создании функции продумывать как ты ее назначение объяснишь в комментах.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.