Подтвердить что ты не робот

Поле должно иметь заголовок документации - запах кода стиля "Код - код"?

Я только что запустил стиль cop против моего кода и получил несколько:

SA1600: The field must have a documentation header.

Теперь не поймите меня неправильно. Мне нравится стиль копа, это здорово, когда вы работаете над проектом с более чем одним человеком, но это правило кажется мне слишком чрезмерным. Почему вы хотите добавить:

    /// <summary>
    /// blah blah blah
    /// </summary>

до вершины каждой переменной. Я уверен, что я помню, как кто-то сказал (Мартин Фаулер, Кент Бек... не помню ATM), что комментарий должен сказать "почему" не "что", и я действительно не могу понять, как вы можете объяснить, почему на переменная.

Я также нахожу код, который имеет комментарии к каждой переменной, более трудной для чтения, потому что все, что вы видите, - пух.

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

Кто-нибудь еще находит комментирующие переменные немного запаха кода или это только я.

4b9b3361

Ответ 1

Я бы не сказал, что комментирование переменной всегда является запахом кода (и это не похоже на то, что вы говорите, либо). Я согласен с тем, что комментируя каждую переменную, каждый раз, по крайней мере, чрезмерно, и, возможно, указывает на плохое присвоение имен. Фактически, некоторые утверждают, что любой комментарий является запахом кода, и что описательные имена и короткие процедуры более читабельны и предотвращают ситуацию, когда код был изменен, но комментарии не были обновлены (что, безусловно, укусило меня в несколько устаревших кодовых баз). Я не думаю, что я бы воспринял это довольно далеко, но если вы можете написать код, который не требует объяснений, без лишних объяснений, это кажется предпочтительным.

Так что да, в основном то, что ты сказал.

Ответ 2

Это довольно старый пост, но натолкнулся на него, ища решение этой проблемы самостоятельно, поэтому, хотя я бы предложил решение.

Если вы откроете файл Settings.StyleCop в редакторе правил, выберите Правила документа node, а затем в разделе Подробные настройки справа отмените опцию Включить поля. Теперь вам больше не потребуется документировать поля.

Ответ 3

Комментарии XML немного отличаются от других комментариев.

Если вы правильно настроите настройки, вы можете отобразить их в подсказках инструментов в Visual Studio и использовать их для создания документации стиля MSDN с Sand Castle. Я думаю, они должны сказать вам, что делает это, когда у вас нет доступа к исходному коду.

Дело в том, что эти комментарии могут появляться без исходного кода, который они комментируют. Они должны быть полезны для другого разработчика, который не может видеть ваш код и меньше заботится о том, как вы делаете.

Я не знаю о инструменте "Cop", который вы используете, но было бы неплохо иметь способ сигнализировать инструменту, который намерен оставить параметр пустым. Итак:

    /// <param name="fubar"></param>  // Haven't gotten around to it
    /// <param name="portNumber" />   // I intend this parameter to have no help

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

    /// <param name="portNumber">The Port Number</param> // What else could it be?

Если вы не хотите использовать вышеописанные функции, выключите правило Style Cop.

Ответ 4

Полностью согласен и первое, что я отключил в StyleCop. Если вам нужно это объяснить, вы назвали его таким образом, который нуждается в объяснении и не удалось сделать код самодокументирование.

Ответ 5

Для тех, кто все еще сталкивается с этой проблемой, этот пост how-to-change-a-stylecop-rule действительно имеет идеальный ответ.

Ответ 6

Вы должны попробовать GhosDoc - это простой способ автоматизировать документацию для каждого члена кода вашего приложения. Просто установите его, щелкните правой кнопкой мыши на элементе и выберите документ!

Ответ 7

Я думаю, что правильный ответ здесь "это зависит". Вы можете, конечно, объяснить "почему" переменной, помеченной как static/const, или бизнес-логикой/ограничениями на содержимое переменной. Сказав это, я согласен с тем, что просмотр каждого комментария переменной затрудняет читаемость и может указывать слепо, следуя стандартным или неправильным наименованиям.