Навыки architecture-patterns
📦

architecture-patterns

Безопасно

Реализация архитектурных паттернов бэкенда

Также доступно от: Barnhardt-Enterprises-Inc,AdamManuel-dev

Создание поддерживаемых бэкенд-систем требует проверенных архитектурных паттернов. Этот навык помогает реализовать чистую архитектуру (Clean Architecture), гексагональную архитектуру (Hexagonal Architecture) и предметно-ориентированное проектирование (Domain-Driven Design) для создания тестируемых, масштабируемых приложений с правильным разделением ответственности.

Поддерживает: Claude Codex Code(CC)
📊 71 Адекватно
1

Скачать ZIP навыка

2

Загрузить в Claude

Перейдите в Settings → Capabilities → Skills → Upload skill

3

Включите и начните использовать

Протестировать

Использование «architecture-patterns». Create a Clean Architecture structure for a user management system

Ожидаемый результат:

Навык генерирует полную структуру каталогов с domain/entities, содержащим сущность User, domain/interfaces с портом IUserRepository, use_cases, содержащим CreateUserUseCase и UpdateUserUseCase, adapters/repositories с реализацией PostgresUserRepository и adapters/controllers с UserController для обработки HTTP. Каждый компонент демонстрирует правильный поток зависимостей и разделение ответственности.

Использование «architecture-patterns». Implement a payment gateway adapter using hexagonal architecture

Ожидаемый результат:

Навык создаёт интерфейс PaymentGatewayPort, определяющий контракт метода charge, затем реализует как StripePaymentAdapter для продакшена, так и MockPaymentAdapter для тестирования. Оба адаптера реализуют один и тот же интерфейс порта, позволяя легко менять их без изменения бизнес-логики. Пример включает обработку ошибок и правильные паттерны async/await.

Использование «architecture-patterns». Design an Order aggregate with DDD patterns

Ожидаемый результат:

Навык проектирует сущность Order как корень агрегата с методами add_item, calculate_total и submit, инкапсулирующими бизнес-правила. Включает сущность OrderItem, объект-значение Money для обработки валюты, enum OrderStatus для управления состоянием и доменные события, такие как OrderSubmittedEvent. Агрегат обеспечивает соблюдение инвариантов и поддерживает границы согласованности.

Аудит безопасности

Безопасно
v5 • 1/21/2026

All 43 static analysis findings are false positives from educational code examples in documentation. The skill teaches software architecture patterns through Python examples showing Clean Architecture, Hexagonal Architecture, and Domain-Driven Design. No executable code, network access, or security vulnerabilities present.

2
Просканировано файлов
909
Проанализировано строк
0
находки
5
Всего аудитов
Проблем безопасности не найдено

Оценка качества

38
Архитектура
100
Сопровождаемость
87
Контент
31
Сообщество
100
Безопасность
91
Соответствие спецификации

Что вы можете построить

Проектирование архитектуры нового бэкенд-сервиса

Планирование и реализация нового микросервиса с использованием принципов Clean Architecture с правильным разделением слоёв, внедрением зависимостей и тестируемой бизнес-логикой.

Рефакторинг монолитного приложения

Преобразование тесно связанного монолитного приложения в хорошо структурированную гексагональную архитектуру с портами и адаптерами для упрощения тестирования и сопровождения.

Реализация паттернов Domain-Driven Design

Моделирование сложных бизнес-доменов с использованием тактических паттернов DDD, включая агрегаты, сущности, объекты-значения и доменные события для лучшего соответствия предметной области.

Попробуйте эти промпты

Генерация структуры Clean Architecture
Create a Clean Architecture folder structure for an e-commerce order management system with domain entities, use cases, and adapters.
Реализация порта и адаптера репозитория
Implement a user repository port interface and PostgreSQL adapter following hexagonal architecture principles with async database access.
Создание доменных сущностей с бизнес-логикой
Design an Order aggregate with domain entities, value objects, and business rules for adding items, calculating totals, and state transitions.
Рефакторинг контроллера в паттерн Use Case
Refactor this FastAPI endpoint that has business logic in the controller into a proper use case with dependency injection and separation of concerns.

Лучшие практики

  • Всегда направляйте зависимости внутрь от внешних слоёв к внутренним, никогда не позволяйте доменному слою зависеть от инфраструктуры
  • Используйте интерфейсы и порты для определения контрактов в доменном слое, реализуйте адаптеры во внешних слоях для тестируемости
  • Держите бизнес-логику в доменных сущностях и вариантах использования, контроллеры должны обрабатывать только HTTP-вопросы и делегировать их вариантам использования

Избегать

  • Размещение бизнес-логики в контроллерах или обработчиках API вместо вариантов использования и доменных сущностей
  • Создание анемичных доменных моделей только с полями данных и без поведения, размещение всей логики в сервисах
  • Тесная связь доменного слоя с конкретными фреймворками, базами данных или внешними API без интерфейсов абстракции

Часто задаваемые вопросы

Когда следует использовать Clean Architecture вместо более простых паттернов?
Используйте Clean Architecture для сложной бизнес-логики с множественными интеграциями и долгосрочными потребностями в сопровождении. Простые CRUD-приложения с базовыми рабочими процессами могут не получить выгоды от дополнительных уровней абстракции. Рассмотрите компромисс между поддерживаемостью и простотой на основе сложности вашего проекта.
Чем гексагональная архитектура отличается от Clean Architecture?
Оба обеспечивают инверсию зависимостей и разделение ответственности. Clean Architecture подчёркивает концентрические слои со строгими правилами зависимостей, направленными внутрь. Hexagonal Architecture фокусируется на портах и адаптерах, где доменное ядро окружено взаимозаменяемыми адаптерами. Это взаимодополняющие подходы, часто используемые вместе.
В чём разница между сущностями и объектами-значениями в DDD?
Сущности имеют уникальную идентичность и жизненный цикл, две сущности с одинаковыми атрибутами всё равно различны, если ID отличаются. Объекты-значения определяются своими атрибутами и неизменяемы, два объекта-значения с одинаковыми атрибутами считаются равными. Используйте сущности для вещей, которые меняются со временем, объекты-значения для описательных характеристик.
Как тестировать варианты использования, которые зависят от репозиториев и внешних сервисов?
Используйте внедрение зависимостей для предоставления mock-реализаций интерфейсов репозиториев и сервисов. Создавайте тестовые двойники, которые реализуют те же интерфейсы портов, но возвращают контролируемые данные вместо обращения к реальным базам данных или API. Это позволяет тестировать бизнес-логику изолированно без зависимостей от инфраструктуры.
Можно ли применять эти паттерны к существующим кодовым базам или только к новым проектам?
Вы можете постепенно рефакторить существующий код к этим паттернам. Начните с одного модуля или функции, извлеките бизнес-логику в варианты использования, создайте интерфейсы репозиториев и реализуйте адаптеры. Постепенная миграция безопаснее полных переписываний. Сначала фокусируйтесь на часто изменяемых областях для максимальной выгоды.
Работает ли этот навык с фреймворками, отличными от FastAPI и PostgreSQL?
Принципы применимы к любому фреймворку или базе данных. Примеры используют FastAPI и PostgreSQL для демонстрации, но те же паттерны работают с Django, Flask, Express, MongoDB, MySQL или другими технологиями. Ключевой момент — держать специфичный для фреймворка код во внешних слоях адаптеров отдельно от бизнес-логики.

Сведения для разработчиков

Автор

wshobson

Лицензия

MIT

Ссылка

main

Структура файлов

📄 SKILL.md