CodeMaid против организации использования Stylecop

Я использую StyleCop довольно давно (и я к нему привык). Мой друг порекомендовал мне также попробовать CodeMaid. Первое, что я заметил, это разница в организации использования.

Stylecop упорядочивает использование в алфавитном порядке, где системное использование указано первым, а несистемное использование - ниже.

CodeMaid упорядочивает использование также в алфавитном порядке, но не упорядочивает использование системы в первую очередь. Он только упорядочивает использование в алфавитном порядке

Еще одна вещь, с которой я столкнулся, это то, что CodeMaid позволяет вам использовать использование вне пространства имен (и, насколько я знаю, лучше размещать все использования внутри пространства имен).

Я хотел спросить, каков правильный порядок использования и, наконец, почему?


person Kajiyama    schedule 12.03.2015    source источник
comment
Честно говоря, я бы доверял StyleCop - MS Brand/tool. Он был разработан внутри компании, а затем обнародован несколько лет назад, поэтому рекомендации естественным образом встроены в StyleCop. Я думаю, это зависит от ваших потребностей больше, чем от чего-либо, но лично, StyleCop.   -  person Ahmed ilyas    schedule 12.03.2015
comment
возможный дубликат c# с использованием порядка операторов пространства имен   -  person Jeff Siver    schedule 12.03.2015
comment
Порядок использования директив не имеет значения; положение использования директив не имеет значения. На самом деле, если вы немного покопаетесь в MSDN, то увидите, что они называются директивами using по какой-то причине; они предоставляют информацию компилятору, но не отображаются в IL.   -  person Jeff Siver    schedule 12.03.2015


Ответы (2)


Отказ от ответственности: я написал CodeMaid.

  1. Для System using операторы были первыми, Microsoft изменила свои настройки по умолчанию в Visual Studio 2012, когда они начали внедрять «Windows». сборки. Подробнее здесь: Использование директив, отсортированных в неправильном порядке

Вы можете легко изменить это обратно на значение по умолчанию VS2010 в Инструменты-> Параметры-> Текстовый редактор-> C#-> Дополнительно-> «Поместить системные директивы первыми при сортировке использования». CodeMaid учитывает предпочтение, определенное Visual Studio, которое по умолчанию не ставит системные директивы первыми.

  1. Для использования операторов, находящихся внутри пространства имен, в нашем списке невыполненных работ есть поддержка этого https://trello.com/c/CLRxsIyc. . StyleCop может указывать это как стандарт, но если вы посмотрите на примеры MSDN, шаблоны Visual Studio и т. д., вы обнаружите, что использование операторов вне пространства имен гораздо более традиционно. По этому вопросу ведется много споров, и наша цель состоит в том, чтобы поддержать оба подхода.

Надеюсь, поможет. :)

person Steve Cadwallader    schedule 15.03.2015
comment
Рад слышать обе новости, Стив. +1 - person Kajiyama; 16.03.2015

Нет "правильного" порядка, только условности. В правиле SA1210 компании Stylecop прямо указано, что System пространства имен размещаются первыми:

Нарушение этого правила происходит, когда директивы использования не отсортированы в алфавитном порядке по пространству имен. Сортировка директив using в алфавитном порядке делает код чище и легче для чтения, а также может упростить определение пространств имен, используемых кодом. Пространства имен System являются исключением из этого правила и всегда предшествуют всем остальным пространствам имен. Дополнительные сведения см. в SA1208.

Правило SA1208 гласит, что System пространства имен должны располагаться перед другими пространствами имен, и причина этого такова:

Размещение всех директив System using над директивами using может сделать код чище и легче для чтения, а также может упростить идентификацию пространств имен, используемых кодом.

Правила Stylecop — это соглашения, а Codemaid выбрала несколько иное соглашение. Выберите тот, который вам нравится, и переходите к более важным решениям.

См. этот вопрос относительно наличия using утверждений за пределами пространство имен.

person Patrick Quirk    schedule 12.03.2015
comment
Спасибо за ссылку, я знаю об этом, и я читал ее несколько лет назад, поэтому я упомянул так же быстро, как я знаю часть - person Kajiyama; 12.03.2015