Есть несколько пунктов вашего вопроса, которые привлекли мое внимание, поэтому я хотел бы добавить некоторые мысли к предыдущим ответам.
У меня нет проблем с комментариями XML, и я нахожу их очень полезнымиместами, но действительно ли они нужны для каждого поля и свойства?
Некоторые поля и свойства настолько очевидны для всех, что им не нужно объяснение.Например, если класс Coordinate
имеет свойства X
, Y
и Z
, в комментариях объяснять нечего.
Но когда речь идет о таком инструменте, как StyleCop, инструмент не может определить разницу между очевидным свойством и свойством, которое может оказаться трудным для понимания при первом обнаружении исходного кода.Поэтому нет, комментарии не нужны везде, но мы либо применяем комментарии к каждому полю и свойству, либо отключаем правило и позволяем разработчику принять решение.
Вот комбинация правила Stylecop (SA1642:ConstructorSummaryDocumentationMustBeginWithStandardText), встречаемый сгенерированным GhostDoc xml-комментарием - добавляет ли какое-либо значение в конце дня?
Каким-то образом.Некоторые инструменты отображают конструкторы так же, как и другие методы, и вы не можете визуально различать их (если вы не помните имя класса).XML-комментарий, с другой стороны, настолько ясен, что очень легко понять, что это конструктор.
Кстати, что бы вы еще здесь написали?
Что-то еще?Отсутствие стандарта для конструкторов затруднит чтение кода и понимание того, что метод является конструктором в представлениях, где оба отображаются одинаково.
Нет комментариев вообще?Это может быть решением, так как такой комментарий может быть легко сгенерирован из имени класса.Но это усложнит ситуацию (почему автоматическая генерация комментария для конструкторов, а не для других методов?).Кроме того, если вы не предоставите описание этого конструктора, как кто-то может узнать, что такое someParameter
?
Наконец, чтобы ответить на ваш вопрос, никто не может сказать, что каждое правило StyleCopвсегда полезно в каждом случае.Но помните, что глупость здесь - это цель "каждый проект должен иметь 0 предупреждений при сборке", а не сам StyleCop .Если вы опытный разработчик и пишете чистый код, нет никаких причин не отключать некоторые правила StyleCop, по крайней мере, если вы хорошо понимаете, что они означают, почему они здесь и каковы будут последствия, чтобы не следовать этому правилу.
В нашей компании есть политика использования StyleCop для каждого проекта, и если в крошечном проекте есть сотни предупреждений, значит, есть проблема.В то же время, У меня часто возникали ситуации, когда я отключал несколько правил StyleCop для целых классов просто потому, что это приведет к напрасной трате времени на их применение и никому ничего не приносит .С другой стороны, мне совсем не понравилось, когда мой коллега отключил FxCop / StyleCop просто , чтобы иметь возможность писать имена классов, методов и свойств на французском языке (я работаю во французской компании, которая такжеработает с англоязычными разработчиками), поэтому я бы сказал, что для некоторых людей оба инструмента должны быть включены каждый раз, без возможности их отключения.