Мне было поручено написать стандарт программирования на C# для нашего отдела (включая рекомендации). Какие стандарты / руководящие принципы я должен включить? Я уже взял фрагменты из различных стандартов в сети (и фрагменты из Code Complete), но я хотел бы услышать от разработчиков в этой области.
У меня уже есть: Соглашения об именах - Общие / Переменные / Классы / Методы / Интерфейсы / Элементы управления
Общие методы программирования - документация (комментарии и т. д.), [WIP]
Практики объектно-ориентированного программирования - инкапсуляция, [WIP]
Что еще было бы полезно? Что я не должен включать?





Вы уже предлагали всем прочитать «Рекомендации по дизайну для разработчиков библиотек классов»? Это покрывает большую часть этого. Кроме этого, я бы хотел забить домой:
Я буду добавлять больше, когда думаю о них ...
Информация о том, как обрабатывать пространства имен, соглашения об именах сборок / проектов / решений, соглашения об именах файлов .. группировка элементов (например, у вас есть и элемент, и элемент, они находятся в одном файле?)
Просто пара вещей из моей головы
Полезны руководства по максимальной длине метода, максимальному размеру класса и максимальному местоположению в исходном файле.
Кроме того, вы можете установить некоторые рекомендации по отступам, макету кода и тому подобному, но мне было проще просто сделать это с настройками в Visual Studio, а затем попросить ваших разработчиков импортировать для этого тот же файл настроек. Таким образом, людям не нужно думать об этом, и Visual Studio сделает всю работу за них.
FXCop и подобные инструменты также могут автоматически проверять лучшие практики. Поэтому полезно распространять рекомендации по этому поводу, просто делая доступные файлы FXCop, которые проверяют все правила, которые вас интересуют. Не вводите большие проверки FXCop в большой существующей кодовой базе, хотя попытайтесь увеличить количество проверок в течение определенного периода времени, чтобы люди не столкнулись с тысячами ошибок FXCop.
Суммируя:
Постарайтесь, чтобы рекомендации были краткими, включайте только то, что действительно важно. Сделайте их легкими для чтения (вы можете написать соглашения об именах в качестве примера класса, например, где вы выделяете все правила с некоторыми дополнительными полями с текстом) И используйте инструменты для автоматизации проверок, где вы можете, чтобы разработчики могли легко и быстро получить обратную связь.