Я использую инструмент под названием NDEPEND для сканирования моего решения C#, чтобы найти проблемы с кодировкой. Инструмент красиво перечисляет нарушения кодирования в соответствии с категорией. Мой вопрос в том, даст ли этот инструмент автоматическое предложение об изменении, которое должно быть сделано для перечисленных проблем с кодированием? Я не могу найти ничего, что связано с этим.Инструменты для поиска и исправления стандартов кодирования C#
1
A
ответ
1
Глядя на список default NDepend rules, вы увидите, что все они представлены с двумя разделами комментариев: <Description>
и <HowToFix>
. Раздел <HowToFix>
содержит предложения по устранению проблем.
Эта функция появилась с NDepend v6 выпущена в июне 2015 года. Возможно, вы используете прежнюю версию?
Например, это выглядит следующим образом:
// <Name>Base class should not use derivatives</Name>
warnif count > 0
from baseClass in JustMyCode.Types
where baseClass.IsClass && baseClass.NbChildren > 0 // <-- for optimization!
let derivedClassesUsed = baseClass.DerivedTypes.UsedBy(baseClass)
where derivedClassesUsed.Count() > 0
select new { baseClass, derivedClassesUsed }
//<Description>
// In *Object-Oriented Programming*, the **open/closed principle** states:
// *software entities (components, classes, methods, etc.) should be open
// for extension, but closed for modification*.
// http://en.wikipedia.org/wiki/Open/closed_principle
//
// Hence a base class should be designed properly to make it easy to derive from,
// this is *extension*. But creating a new derived class, or modifying an
// existing one, shouldn't provoke any *modification* in the base class.
// And if a base class is using some derivative classes somehow, there
// are good chances that such *modification* will be needed.
//
// Extending the base class is not anymore a simple operation,
// this is not good design.
//</Description>
//<HowToFix>
// Understand the need for using derivatives,
// then imagine a new design, and then refactor.
//
// Typically an algorithm in the base class needs to access something
// from derived classes. You can try to encapsulate this access behind
// an abstract or a virtual method.
//
// If you see in the base class some conditions on *typeof(DerivedClass)*
// not only *urgent refactoring* is needed. Such condition can easily
// be replaced through an abstract or a virtual method.
//
// Sometime you'll see a base class that creates instance of some derived classes.
// In such situation, certainly using the *factory method pattern*
// http://en.wikipedia.org/wiki/Factory_method_pattern
// or the *abstract factory pattern*
// http://en.wikipedia.org/wiki/Abstract_factory_pattern
// will improve the design.
//</HowToFix>
Смежные вопросы
- 1. Инструмент стандартов кодирования C#
- 2. Внедрение и применение стандартов кодирования
- 3. Внедрение стандартов кодирования PHP
- 4. Нормализация всего репозитория для PSR стандартов кодирования
- 5. Применение стандартов веб-кодирования
- 6. Документы стандартов кодирования Coldfusion
- 7. Symfony стандартов кодирования - аргументы и параметры
- 8. Использование @properties для всех стандартов кодирования экземпляров
- 9. Выполнение стандартов кодирования только для нового кода
- 10. Какие существуют инструменты для сравнения кода C++ с правилами кодирования?
- 11. Ищете лучшее понимание стандартов кодирования
- 12. Сокращение времени «промывания мозгов» стандартов кодирования и усилий новых сотрудников
- 13. Необходимое предложение для стандартов кодирования Ruby и Rails
- 14. Стандарты кодирования для C++ и C#
- 15. Инструменты для анализа C++ codebase
- 16. Проверка стандартов автоматического кодирования PHP (Nette framework)
- 17. Есть ли инструмент для внедрения стандартов кодирования для Scala?
- 18. Кодирование для IE против кодирования для стандартов W3C
- 19. Есть ли инструменты для рефакторинга C++ для соответствия стандартам кодирования?
- 20. Инструменты для поиска строк в C#
- 21. VS кодирования конвенции инструменты
- 22. Инструменты для поиска исключенных исключений?
- 23. Ясность в отношении стандартов кодирования для частных методов
- 24. Запуск CommandCLI Codesniffer для стандартов кодирования Drupal дает ошибку
- 25. любые инструменты для автоматического исправления жалоб scss-lint?
- 26. Кто-нибудь создал пользовательские правила StyleCop и FxCop для стандартов кодирования Lance Hunt C#?
- 27. Документ стандартов Objective-C
- 28. Стиль кодирования: инструменты для автоматического форматирования существующих файлов php автоматически?
- 29. Бесплатный инструмент для проверки исходного кода на C/C++ на основе набора стандартов кодирования?
- 30. Расшифровка кодирования: инструменты анализа пакетов
Спасибо Патрик. Да, я могу найти его и в моей версии NDEPEND. На самом деле я думал, что NDEPEND предоставит предложения/подсказки, как в Resharper. –