Главная · Скиллы · dotnet-design-pattern-review

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.

Из того же репозитория