2008-11-13 8 views
15

Мне нравится StyleCop анализ статического кода и соблюдение правил. Однако в нескольких ключевых отделах этого недостаточно.Альтернатива StyleCop для Visual Studio?

  • Добавление новых правил официально не поддерживается и из-за того, что я слышу довольно сложно.
  • Автоматическое «исправление» тривиальных нарушений правил было бы неплохо! Возможно, не с переменным именем, а с упорядочением методов (статическим и т. Д.), Это будет огромная экономия времени.
  • Microsoft-подход «один размер подходит всем» для StyleCop является своего рода ограничительным. Я хотел бы иметь собственный набор правил для наших внутренних стандартов.

Есть ли такой коммерческий продукт?

alt text http://blogs.interakting.co.uk/images/blogs_interakting_co_uk/dominicz/WindowsLiveWriter/MicrosoftStyleCopSourcecodeanalysisforfo_D8EF/styleCopErrors_6.gif

+0

Там в проект под названием StyleFix, который будет пытаться исправить некоторые ошибки автоматически. Это плохо документировано и работает только на VS2008. Я взял источник и изменил его, чтобы интегрировать StyleCop непосредственно в программу и выполнить исправления. (И скомпилировал его в VS2005) – 2009-07-02 02:45:12

+0

CodeIt.Right, CodeMaid, чтобы назвать два. – nawfal 2015-06-06 09:38:43

ответ

12

Добавление правил есть, или будет, officially supported:

Как и было обещано, мы также будем выпускать SDK документацию для StyleCop объяснить, как автору пользовательских правил и как интегрировать инструмент в пользовательские среды сборки. Документация SDK в настоящее время находится под окончательным обзором , и мы надеемся вскоре его выпустить . - JasonAll

С точки зрения нашего стиля "в доме", я получил довольно близко, отключив несколько правил StyleCop:

  • заголовки файлов (SA1633-SA-1640)
  • код заказа (SA1200-SA1202)
  • Требуя "это" (SA1101)

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

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

2

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

Вот пример для проверки того, что некоторые виды неизменны: http://blogs.msdn.com/kevinpilchbisson/archive/2007/11/20/enforcing-immutability-in-code.aspx

Вот другой, правил о модульном тестировании именовании: http://jbazuzicode.blogspot.com/2008/11/keeping-test-fixture-and-class-names.html

EDIT: второе звено, кажется, потеряли в пески времени ,

+0

Ваша вторая ссылка не работает. – Erik 2015-12-22 16:06:04

6

StyleCop for ReSharper может помочь (вы должны купить ReSharper, но плагин бесплатно):

StyleCop для ReSharper теперь имеют полностью в который достиг паритета функций с StyleCop 4.3 ,

Существует 148 правил StyleCop.

  • 38 из них необходимо исправить вручную (обычно, потому что вы должны набирать описательный текст или переименовывать переменные).
  • Из оставшихся 110 правил 58 фиксируются с помощью R # Code Cleanup (тихий режим ).
  • Из оставшихся 52 у нас есть правила очистки кода, которые автоматически фиксируют все .

Мы также предлагаем 106 Quick багов, которые обеспечивает в затруднительном меню места контекстных за нарушения на 110 правил, которые может быть исправлена ​​автоматически

Мы также корабль с «StyleCop дружественного ReSharper код Стиль Sharing Файл настроек ", который настраивает ReSharper для автоматического форматирования кода в стиле StyleCop.

3

Альтернатива или хорошее дополнение к StyleCop будет использовать коммерческий инструмент NDepend. С помощью этого инструмента можно написать Кодовое правило над запросами LINQ(namely CQLinq). Отказ от ответственности: Я один из разработчиков инструмента

Более 200 code rules предлагается по умолчанию, они включают дизайн, архитектуры, качество кода, эволюции кода, соглашения об именах, мертвого код, использование .NET Fx ...

CQLinq посвящен писать правила коды, которые могут быть verified live in Visual Studio, или это может быть verified during build process and reported in an HTML/javascript report.

Сила CQLinq над StyleCop или даже FxCop, что это просто написать правило кода, и получить сразу результаты. Предлагаются средства для просмотра согласованных элементов кода. Конкретно это выглядит так:

CQLinq code rule