Как зайти в Даркнет?!
25th January, 01:11
8
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
900
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
952
0
Очень долго работает Update запрос Oracle
27th January, 09:58
916
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
907
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
942
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1727
0
период по дням
25th October, 10:44
3957
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3722
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4614
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4382
0
Помогите пожалуйста решить задачи
24th November, 23:53
6088
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4352
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4400
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
Как можно реализовать FxCop / статический анализ на существующей базе кода
Каковы некоторые из стратегий, которые используются при реализации FxCop / статического анализа на существующих кодовых базах с существующими нарушениями? Как можно наиболее эффективно уменьшить нарушения статического анализа?
Для начала широко используйте атрибут [SuppressMessage]. По крайней мере, в самом начале. После того, как вы получите счетчик до 0 с помощью атрибута, вы затем поставите правило, что новые проверки не могут вводить FxCop нарушений.
В Visual Studio 2008 есть хорошая функция анализа кода, которая позволяет гарантировать, что анализ кода выполняется на каждой сборке, и вы можете рассматривать предупреждения как ошибки. Это может немного замедлить процесс, поэтому я рекомендую настроить сервер непрерывной интеграции (например, CruiseControl.NET) и заставить его выполнять анализ кода при каждой проверке.
Как только вы возьмете его под контроль и не будете вводить новые нарушения с каждой проверкой, начните обрабатывать целые классы FxCop нарушений одновременно с целью удаления SuppressMessageAttributes, который вы использовали.
Способ отслеживать, какие из них вы действительно хотите сохранить, - это всегда добавлять значение оправдания к тем, которые вы действительно хотите подавить.
Перепишите свой код в проходящем стиле!
Серьезно, старая кодовая база будет содержать сотни ошибок - но именно поэтому у нас есть начинающие/стажеры-программисты. Исправление FxCop нарушений-это отличный способ получить обзор базы кода, а также научиться писать соответствующий код .NET.
Так что просто укусите пулю, выпейте много кофеина и просто пройдите через это за пару дней!
NDepend выглядит так , что он может сделать то, что вы ищете, но я не уверен, что он может быть интегрирован в автоматизированную сборку CruiseControl.Net, и не сможет выполнить сборку, если код не соответствует требованиям (что я и хотел бы сделать).
Есть еще какие-нибудь идеи?
Альтернативой FxCop может быть использование инструмента NDepend . Этот инструмент позволяет писать правила кода для C# LINQ запросов (то, что мы называем CQLinq ). Отказ от ответственности: я являюсь одним из разработчиков инструмента
По умолчанию предлагается более 200 правил кода . Настройка существующих правил или создание собственных правил очень просто благодаря хорошо известному синтаксису C# LINQ.
Чтобы уменьшить количество ложных срабатываний, CQLinq предлагает уникальные возможности для определения того, что такое набор JustMyCode , с помощью специальных запросов кода, префиксированных notmycode . Более подробное описание этой функции можно найти здесь . Вот например два запроса notmycode по умолчанию:
- Отбросить созданные и конструкторские методы из JustMyCode
- Отбросить сгенерированные типы из JustMyCode
Чтобы уменьшить количество ложных срабатываний, с помощью функции CQLinq можно также фокусировать результат правил только на добавленном коде или преобразованном коде, так как определенная базовая линия уже была в прошлом . См. следующее правило, которое определяет слишком сложные методы, добавленные или рефакторированные с момента базовой линии:
warnif count > 0
from m in Methods
where m.CyclomaticComplexity > 20 &&
m.WasAdded() || m.CodeWasChanged()
select new { m, m.CyclomaticComplexity }
Наконец, обратите внимание, что с помощью NDepend правила кода можно проверить в реальном времени в Visual Studio и во время процесса сборки в созданном отчете HTML+javascript .