dotnet-best-practicesOfficialлучшие практики .NET GitHub Copilot
github/awesome-copilot
Лучшие практики .NET.
Установка
npx -y skills add github/awesome-copilot --skill dotnet-best-practices --agent claude-code.NET/C# — лучшие практики
Задача — обеспечить, чтобы код .NET/C# в ${selection} соответствовал лучшим практикам этого решения/проекта. Это включает:
Документация и структура
- Создавайте исчерпывающие XML-комментарии документации для всех публичных классов, интерфейсов, методов и свойств
- Включайте описания параметров и возвращаемых значений в XML-комментарии
- Следуйте устоявшейся структуре пространств имён:
{Core|Console|App|Service}.{Feature}
Паттерны проектирования и архитектура
- Используйте синтаксис первичного конструктора для внедрения зависимостей (напр.
public class MyClass(IDependency dependency)) - Реализуйте паттерн Command Handler с обобщёнными базовыми классами (напр.
CommandHandler<TOptions>) - Используйте разделение интерфейсов с ясными соглашениями именования (префикс
I) - Применяйте паттерн Factory для сложного создания объектов
Внедрение зависимостей и сервисы
- Используйте внедрение через конструктор с проверками на null через
ArgumentNullException - Регистрируйте сервисы с подходящим временем жизни (Singleton, Scoped, Transient)
- Используйте паттерны
Microsoft.Extensions.DependencyInjection - Реализуйте интерфейсы сервисов для тестируемости
Управление ресурсами и локализация
- Используйте
ResourceManagerдля локализованных сообщений и строк ошибок - Разделяйте файлы ресурсов LogMessages и ErrorMessages
- Обращайтесь к ресурсам через
_resourceManager.GetString("MessageKey")
Паттерны async/await
- Используйте async/await для всех I/O-операций и долгих задач
- Возвращайте
TaskилиTask<T>из async-методов - Используйте
ConfigureAwait(false), где уместно - Корректно обрабатывайте async-исключения
Стандарты тестирования
- Используйте фреймворк MSTest с FluentAssertions для проверок
- Следуйте паттерну AAA (Arrange, Act, Assert)
- Используйте Moq для мокирования зависимостей
- Тестируйте сценарии успеха и неудачи
- Включайте тесты валидации null-параметров
Конфигурация и настройки
- Используйте строго типизированные классы конфигурации с data annotations
- Реализуйте атрибуты валидации (Required, NotEmptyOrWhitespace)
- Используйте привязку
IConfigurationдля настроек - Поддерживайте файлы конфигурации appsettings.json
Semantic Kernel и интеграция ИИ
- Используйте
Microsoft.SemanticKernelдля операций ИИ - Реализуйте корректную конфигурацию kernel и регистрацию сервисов
- Обрабатывайте настройки моделей ИИ (ChatCompletion, Embedding и т.д.)
- Используйте паттерны структурированного вывода для надёжных ответов ИИ
Обработка ошибок и логирование
- Используйте структурированное логирование с
Microsoft.Extensions.Logging - Включайте scoped-логирование с осмысленным контекстом
- Бросайте конкретные исключения с описательными сообщениями
- Используйте try-catch для ожидаемых сценариев неудачи
Производительность и безопасность
- Используйте возможности C# 12+ и оптимизации .NET 8, где применимо
- Реализуйте корректную валидацию и санитизацию ввода
- Используйте параметризованные запросы для операций с БД
- Следуйте практикам безопасного кодирования для операций AI/ML
Качество кода
- Обеспечьте соответствие принципам SOLID
- Избегайте дублирования через базовые классы и утилиты
- Используйте осмысленные имена, отражающие концепции домена
- Держите методы сфокусированными и связными
- Реализуйте корректные паттерны освобождения ресурсов
Из того же репозитория
git-commitOfficial — git коммит GitHub Copilot
github/awesome-copilot
Git коммит.
gh-cliOfficial — GitHub CLI Awesome Copilot
github/awesome-copilot
GitHub CLI.
excalidraw-diagram-generatorOfficial — генератор диаграмм Excalidraw GitHub
github/awesome-copilot
Генератор диаграмм Excalidraw.
documentation-writerOfficial — писатель документации GitHub Copilot
github/awesome-copilot
Писатель документации.
prdOfficial — PRD GitHub Copilot
github/awesome-copilot
Документ требований к продукту.
refactorOfficial — рефакторинг GitHub Copilot
github/awesome-copilot
Рефакторинг.
