3

У StyleCop (4.7.14.0) установлен параметр «Анализировать файлы дизайнеров» по ​​умолчанию, и я хотел бы знать, есть ли какие-либо аргументы, которые бы оправдывали проверки стиля кода в файле, создаваемом разработчиком.Почему «Анализ файлов дизайнеров» является значением по умолчанию для StyleCop?

Я понимаю, что могу (и как) отключить его, проверяя эти файлы (я рассматриваю это), но вопрос в том, почему это было бы дефолтом для их анализа?

Разве эти файлы не остаются в покое? Почему мы должны пытаться сделать их совместимыми с StyleCop?

+0

Это по умолчанию Microsoft. Не ваш, вы ничего не можете с этим поделать. –

+0

@HansPassant Ну, я могу изменить его, и он будет сохранен в файле 'Settings.StyleCop', который будет использоваться в рамках всего проекта любым, кто проверяет код, если это то, что вы имеете в виду. Но я хотел бы знать, были ли какие-то соображения позади этого (так как файлы '* .designer.cs' по умолчанию не совместимы с StyleCop). Кажется странным, поскольку разработчики StyleCop наверняка знают, что произойдет, если вы оставите его по умолчанию (и единственные онлайн-обсуждения, похоже, касаются того, как изменить это значение по умолчанию, а не почему оно там в первую очередь). –

ответ

0

Основная причина, по которой я могу думать, заключается в том, что нет абсолютной гарантии, что файл с «дизайнером» в имени будет генерироваться автоматически.

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

Но я согласен, если вы уверены, что они всегда автоматически генерируются, вам не следует пытаться их очистить.

OTOH, мой сервер CRM Dynamics генерирует 12-миллиметровый ссылочный файл, поэтому я стараюсь обрезать его!

+0

Ну, суффикс должен быть '.Designer.cs', поэтому, например,' WebDesigner.cs' не будет считаться файлом дизайнера. Я действительно сомневаюсь, что люди будут называть файлы типа MyClass.Designer.cs'. Кроме того, если у вас есть файл, называемый просто 'Designer.cs', у него не будет полного суффикса, поэтому я уверен, что он тоже не будет проигнорирован. Мне немного любопытно, что вы делаете, чтобы очистить 12-мегабайтный файл. –

+0

Одной особенностью является удаление класса для функций CRM, которые я не использую, хотя это довольно редкая вещь; самое главное - реализовать частичные классы, чтобы я мог разделить функциональность, в которой я нуждаюсь, на несколько файлов, которые индивидуально не засоряют компилятор/resharper. –

1

Может быть желательно сгенерировать код с теми же стандартами, что и ручной код. Разумеется, это имеет тенденцию быть менее важным для чистых «стилей кода», таких как те, которые покрыты StyleCop, чем для «правильности» проблем, охватываемых такими инструментами, как FxCop, но все же могут быть веские причины проверять код, сгенерированный с помощью инструмента, даже для стиля вопросы. например .:

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

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

+0

Это звучит как вероятный сценарий - проверка стиля кода, созданного инструментом, который мы сами создали.Но, как ни странно, по умолчанию это файлы «Проверить' .designer.cs', но не проверяйте файлы '.generated.cs' (поэтому он явно не проверяет стиль кода, сгенерированного вашим инструментом, и вместо этого проверяет код Windows Forms Designer). –