После ознакомления с Приложением A "Соглашения о стиле кодирования С#" в книге "Руководство по дизайну рамок" (2-е издание от ноября 2008 года) я совершенно смущен тем, что стиль кодирования Microsoft использует внутренне/рекомендую.
Запись в блоге Краткая история стиля С#:
Фактически, различия между стилем StyleCop и "Framework Design Guidelines style" относительно незначительны
Как я вижу, различия довольно выражены. StyleCop говорит, что открывающая фигурная скобка должна быть отдельной строкой, в Руководстве по дизайну рамок указано, что это должно быть после вступительного заявления. StyleCop говорит, что за всеми ключевыми словами следует пробел, в Руководстве по дизайну рамок говорится: "Избавьтесь от всех пробелов" (даже вокруг двоичных операторов).
Я нахожу это правило из руководства по дизайну Framework особенно ироничным (стр. 366, 6-е правило сверху):
Не используйте пробелы перед операциями управления потоком
Right: while(x==y) Wrong: while (x == y)
Это явно указывает, что стиль StyleCop неверен (пробел после ключевого слова while, пробелы до и после двоичного оператора равенства).
В конце код, отформатированный с использованием стиля StyleCop, имеет совсем другое "чувство" от того, которое отформатировано с использованием стиля Framework Design Guidelines. Следуя стилю Framework Design Guidelines, нужно было бы отключить кучу правил (И нет правил, которые проверяют соблюдение стиля Framework Design Guidelines...).
Может ли кто-нибудь (инсайдеры MSFT, возможно?) пролить свет на это расхождение?
Как ваша команда справляется с этим? Следуя StyleCop? Руководства по разработке рамок? Игнорирование стиля вообще? Выпечка собственного стиля?