То, которые являются, “должно следовать” правилам FxCop для какого-либо разработчика C#?

Пакеты служат двум целям. Один из них - уникальное определение вашего приложения в Google Play Store. Другой - это имя пакета для класса R.java, который создается при создании вашего проекта. Вы можете представить себе первую цель как внешний пакет, а второй - как внутренний пакет. Предполагая, что вы хотите изменить внешний пакет, чтобы вы могли идентифицировать его в магазине Play, есть удобный способ сделать это.

В Android Studio выберите «Файл»> «Структура проекта»> «Выберите модуль вашего приложения»> нажмите на Flavors> измените идентификатор приложения. Теперь, когда вы создадите свой проект, ваш APK и манифест будут использовать это новое имя пакета.

28
задан Vijesh VP 28 September 2008 в 17:58
поделиться

9 ответов

По-моему, сделайте следующее:

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

  • Глобализация
  • Совместимость
  • безопасность
  • Производительность
  • Мобильность

, Так как они - обычно только немного нарушений правила в существующем проекте, по сравнению с другими категориями, но могут улучшить качество Вашего приложения. Когда эти правила будут четкими, попытайтесь зафиксировать следующие категории:

  • Использование Дизайна

, Так как они облегчат для Вас определять ошибки, которые имеют отношение к нарушениям, но у Вас будет большой объем нарушений в существующем коде.

Всегда сортируют нарушения по, выравниваются/устраняют категорию и запускаются с критических. Пропустите предупреждения на данный момент.

В случае, если Вы не знали, существует также StyleCop, доступный от Microsoft, проверяя Ваш код на исходном уровне. Обязательно включите интеграцию MSBuild во время установки.

8
ответ дан OregonGhost 14 October 2019 в 11:46
поделиться

В нашем процессе мы включили все правила, и затем мы должны выровнять по ширине любые подавления как часть нашего процесса рассмотрения. Часто, просто не возможно зафиксировать ошибку эффективным временем способом относительно крайних сроков или ошибка, повышенная по ошибке (это иногда происходит - особенно, если Ваша архитектура обрабатывает плагины через отражение).

Мы также записали пользовательское правило для глобализации для замены существующей, потому что мы не хотели объединяться, строки передали исключениям.

В целом, я сказал бы, лучше пытаться придерживаться всех правил. В моем текущем домашнем проекте у меня есть четыре конфигурации сборки - один набор, которые определяют, что CODE_ANALYSIS определяют и один набор, которые не делают. Тем путем я вижу все сообщения, которые я подавил только путем создания non-CODE_ANALYSIS конфигурации. Это означает, что подавленные сообщения могут периодически рассматриваться и потенциально обращаться или удаляться как требуется.

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

1
ответ дан Jeff Yates 14 October 2019 в 11:46
поделиться

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

2
ответ дан Jonathan Allen 14 October 2019 в 11:46
поделиться

Мы - веб-магазин, таким образом, мы отбрасываем следующие правила:

  • Что-либо с Interop (мы не поддерживаем интеграцию COM, если клиент не платит за него!)
  • подписание Ключа (для веб-приложений не должна быть нужной высокая безопасность prilages)

Occationally мы отбросим правило об использовании более высоких платформ в зависимостях, поскольку часть нашего CMS является все еще.NET 2.0, но это не означает, что DAL / Бизнес-Слои не может быть.NET 3.5, пока Вы не пытаетесь возвратить IQueryable (или что-либо.NET 3, 3.5).

1
ответ дан Aaron Powell 14 October 2019 в 11:46
поделиться

Альтернатива FxCop должна была бы использовать инструмент NDepend, который позволяет записи Правила Кода по Запросам C# LINQ (а именно, CQLinq) . Правовая оговорка: Я - один из разработчиков инструмента

[больше чем 111], 200 правил кода предложены по умолчанию. Настройка существующих правил или создание Ваших собственных правил просты благодаря известный синтаксис C# LINQ.

NDepend накладывается с FxCop на некоторых правилах кода, но предлагает много правил уникального кода. Вот несколько правил, что я классифицировал бы, поскольку должен - следовать :

Уведомление, которое Правила могут быть проверены живой в Visual Studio и во время Процесса сборки, в генерировал отчет .

HTML+javascript
2
ответ дан Patrick from NDepend team 14 October 2019 в 11:46
поделиться

Правила проектирования и правила безопасности являются хорошим местом для запуска.

0
ответ дан TraumaPony 14 October 2019 в 11:46
поделиться

Я полностью соглашаюсь с Sklivvz. Но для существующих проектов, можно очистить категорию нарушений FxCop по категориям.

Время от времени, Жандарм принимает новые правила, которые довольно полезны. Таким образом, можно использовать Жандарма, кроме того.

0
ответ дан Lex Li 14 October 2019 в 11:46
поделиться

На нашем самом важном коде:

  • предупреждения Обработки как ошибки (уровень 4)
  • FxCop должен передать 100% (не обычно игнорирует позволяемый)
  • Жандарм используемый в качестве инструкции (иногда, это конфликтует с FxCop)

, Хотите верьте, хотите нет, FxCop преподает Вам адскую партию тому, как записать лучшему коду... большой инструмент! Таким образом для нас, все правила одинаково важны.

12
ответ дан Sklivvz 14 October 2019 в 11:46
поделиться

Некоторые из правил Избегайте нам ошибок или утечек в США:

  • не поймают общие типы исключений (могут быть лучшее правило для нас. Согласно делам, это может быть легко или сложно Для обеспечения применения)
  • тест для NAN правильно (простой в обеспечении обеспечения)
  • Одноразовые поля должны быть расположены (довольно просты в принуждении)
  • Утилизация должна вызовать базу Dispose (довольно простой в обеспечении обеспечения)
  • . Одноразовые типы должны объявить Финализатор (довольно простой для обеспечения принужденности)

Некоторые помогите нам иметь лучший дизайн, но будьте осторожны, они могут привести вас к большим рефакторингу, когда влияет Central API. Нам нравится

  • Свойства коллекции должны быть готовыми (трудно обеспечить применение в нашем случае)
  • не выставляют универсальный список
  • , не должен подвергать определенные типы Conrete
  • обзорных параметров USUNED (легко улучшается ваш API)

Кто-то на нашем проекте пробовал правила производительности без улучшения. (На самом деле, эти правила о микро оптимизации, что не дает никаких результатов, если не требуется идентификация узкого места, не требуется микрооптимизацию). Я бы предложил не , начиная с этих.

4
ответ дан 28 November 2019 в 03:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: