- Использовать в работе практику Git Flow (ветки feature/ bugfix/ release/ hotfix/) Git Flow
- Использовать единый Подход к тестированию
- Использовать единый code style C#
- Для общего единообразия форматирования используем EditorConfig.
В решение добавляем файл .editorconfig с настройками (в VS 2017 включена поддержка из коробки)
Для применения настроек на лету устанавливаем плагин для нужного редактора.Базовый EditorConfig[*]end_of_line = crlfinsert_final_newline = true
[*.cs]charset = utf-8-bom
- Использовать дефолтный конфиг стилей в VS, опционально настроить автоприменение стилей при сохранении файла (коммитить только после применения стилей).
- Использовать основные элементы контрактного программирования (обязательное указание на всех входных и выходных параметрах) NuGet пакет
- NotNull
- CanBeNull
- ItemNotNull (аналог NotNull для Task<T>)
- ItemCanBeNull (для CanBeNull Task<T>)
- Классы внутри проекта, которые отвечают за внутреннюю реализацию делать internal class(скрывать реализацию).
- Избавиться в коде от обработки общего Exception, исключения должны быть конкретными для текущего контекста (кроме редких случаев и базовых обработчиков)
- Максимально уходить от классов с абстрактными названиями *Helper. Использовать более конкретные названия, например ProfileValidator, FacebookProvider, AvatarFileManager, AccountProfileFactory и др.
- GitLab должен автоматически запускать тесты
- Регулярно обновлять NuGet пакеты (1 раз в месяц)
- Регулярно очищать проекты от warnings (перед слиянием с develop)
- Использовать 5 часов в неделю (1 час в день) на интересные задачи (незапланированные) в рамках проекта (изучение/внедрение новых практик, рефакторинг и т.д.)