dotnet-design-pattern-reviewOfficialревью паттернов дизайна .NET
github/awesome-copilot
Ревью паттернов .NET.
Установка
npx -y skills add github/awesome-copilot --skill dotnet-design-pattern-review --agent claude-codeРевью паттернов проектирования .NET/C#
Проверьте код C#/.NET в ${selection} на реализацию паттернов проектирования и предложите улучшения для решения/проекта. Не вносите изменений в код — только дайте ревью.
Требуемые паттерны проектирования
- Command: обобщённые базовые классы (
CommandHandler<TOptions>), интерфейсICommandHandler<TOptions>, наследованиеCommandHandlerOptions, статические методыSetupCommand(IHost host) - Factory: сложное создание объектов с интеграцией провайдера сервисов
- Dependency Injection: синтаксис первичного конструктора, проверки на null через
ArgumentNullException, абстракции-интерфейсы, корректное время жизни сервисов - Repository: асинхронные интерфейсы доступа к данным, абстракции провайдеров для соединений
- Provider: абстракции внешних сервисов (БД, ИИ), ясные контракты, обработка конфигурации
- Resource: ResourceManager для локализованных сообщений, отдельные .resx (LogMessages, ErrorMessages)
Чек-лист ревью
- Паттерны: какие используются? Корректно ли реализованы Command Handler, Factory, Provider, Repository? Есть ли упущенные полезные паттерны?
- Архитектура: соблюдаются ли соглашения пространств имён (
{Core|Console|App|Service}.{Feature})? Правильное разделение между Core/Console? Модульно и читаемо? - Лучшие практики .NET: первичные конструкторы, async/await с возвратом Task, использование ResourceManager, структурированное логирование, строго типизированная конфигурация?
- Паттерны GoF: корректно ли реализованы Command, Factory, Template Method, Strategy?
- Принципы SOLID: нарушения Single Responsibility, Open/Closed, Liskov, Interface Segregation, Dependency Inversion?
- Производительность: корректные async/await, освобождение ресурсов, ConfigureAwait(false), возможности параллелизма?
- Поддерживаемость: ясное разделение ответственности, согласованная обработка ошибок, корректное использование конфигурации?
- Тестируемость: зависимости абстрагированы интерфейсами, компоненты мокаемы, async-тестируемость, совместимость с AAA?
- Безопасность: валидация ввода, безопасная работа с учётными данными, параметризованные запросы, безопасная обработка исключений?
- Документация: XML-доки для публичных API, описания параметров/возврата, организация файлов ресурсов?
- Ясность кода: осмысленные имена, отражающие домен, ясное намерение через паттерны, самообъясняющая структура?
- Чистый код: согласованный стиль, подходящий размер методов/классов, минимальная сложность, устранённое дублирование?
Области для улучшения
- Command Handlers: валидация в базовом классе, согласованная обработка ошибок, корректное управление ресурсами
- Factories: конфигурация зависимостей, интеграция провайдера сервисов, паттерны освобождения
- Providers: управление соединениями, async-паттерны, обработка исключений и логирование
- Конфигурация: data annotations, атрибуты валидации, безопасная обработка чувствительных значений
- Интеграция AI/ML: паттерны Semantic Kernel, обработка структурированного вывода, конфигурация модели
Дайте конкретные применимые рекомендации по улучшениям, согласованные с архитектурой проекта и лучшими практиками .NET.
Из того же репозитория
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
Рефакторинг.
