# vikulin-va.ru

> Use Case Pattern — авторская методология проектирования backend-сервисов от MVP до Hexagonal с интеграцией AI-агентов как части архитектуры. Контракты язык-нейтральны; биндинги: Java/Spring и Python/FastAPI готовы, Go и Node — в работе. Автор: Вадим Викулин (автор методологии, 17+ лет в Java/Kotlin, руководитель backend-кластера на 20+ инженеров).

## Use Case Pattern (методология)

- [Use Case Pattern](https://vikulin-va.ru/use-case-pattern/): Мультиязычная методология быстрой разработки с AI: язык-нейтральный контракт (UseCase + Handler, спецификация-как-код, уровни зрелости 0–3) и биндинги Java/Spring, Python/FastAPI, Node/NestJS. AI-скиллы Claude для design и review, проверено на проде в команде 20+.
- [Уровень зрелости 0: снимок существующего кода](https://vikulin-va.ru/use-case-pattern/level-0/): Что делать, когда сервис уже работает, а документации нет: как восстановить описание системы прямо из кода, зачем это нужно и как потом двигаться дальше.
- [Уровень зрелости 1: Слоёный](https://vikulin-va.ru/use-case-pattern/level-1/): Слоёная архитектура Controller → Service → Repository: как она устроена, когда её достаточно, где она начинает мешать и какие сигналы говорят, что пора к следующему уровню.
- [Уровень зрелости 2: UseCase + Handler](https://vikulin-va.ru/use-case-pattern/level-2/): Уровень зрелости 2: каждая бизнес-операция выделяется в отдельный UseCase и Handler, контроллер отдаёт операцию диспетчеру, метрики и обработка ошибок встроены автоматически. CQRS — опция этого уровня.
- [Уровень зрелости 3: DDD + Hexagonal](https://vikulin-va.ru/use-case-pattern/level-3/): Что такое DDD и гексагональная архитектура простыми словами: агрегаты защищают бизнес-правила, порты изолируют базу данных и внешние сервисы, Handler становится оркестратором. Когда стоит брать этот уровень, а когда он дороже пользы.
- [Use Case спецификация: формат](https://vikulin-va.ru/use-case-pattern/spec-template/): Что такое спецификация Bounded Context, как она устроена и зачем нужна: корневой файл, файлы агрегатов, карточки команд, матрица переходов, уровни зрелости 0–3.
- [Use Case Pattern: как применять пошагово](https://vikulin-va.ru/use-case-pattern/howto/): Пошаговый гид: как добавить одну операцию в существующий сервис за несколько минут и как выстроить новый сервис с нуля — два сценария, конкретные команды, практики и типичные ошибки.
- [Настройка Claude Code под Use Case Pattern](https://vikulin-va.ru/use-case-pattern/plugins-setup/): Как подключить 44 скиллов Use Case Pattern к Claude Code, добавить плагин superpowers, MCP-сервер context7 и Java LSP — пошаговая инструкция с проверкой каждого компонента.
- [AI пишет код. Зачем тогда методология?](https://vikulin-va.ru/use-case-pattern/methodology-and-ai/): AI без методологии хорош для прототипа — для команды превращается в зоопарк. Пять сценариев, где AI разваливается, и сравнение двух проходов с кодом на Java, Go, TypeScript…
- [AI-native компания: маленькая команда + агенты, и почему ей всё равно нужна методология](https://vikulin-va.ru/use-case-pattern/ai-native-company/): AI-native компания: 3–7 человек, AI-агенты вместо рутинных ролей, скорость команды из 50. Как устроена разработка внутри и почему без методологии она разваливается за первые…
- [Executable standard: исполняемые правила как ESLint для архитектуры](https://vikulin-va.ru/use-case-pattern/executable-standard/): Версионируемый набор правил + AI-агент вместо тимлида-узкого места: как executable standard закрывает архитектурный слой, который SonarQube и ESLint не достают.
- [Use Case Pattern и BMAD-METHOD: стандарты или роли](https://vikulin-va.ru/use-case-pattern/vs-bmad/): Сравнение Use Case Pattern с BMAD-METHOD: агенты-роли и цикл поставки против доменной спецификации и исполняемых стандартов кода — что решает каждый подход и как выбрать.
- [Use Case Pattern и spec-driven инструменты](https://vikulin-va.ru/use-case-pattern/vs-spec-driven/): Чем Use Case спецификация отличается от OpenSpec, Spec Kit и Kiro: спека изменения против спеки системы, сценарии WHEN/THEN против доменной модели с инвариантами и что стоит позаимствовать.

## Кейс маркетплейса

- [Кейс: маркетплейс](https://vikulin-va.ru/case/): Сквозной кейс сайта в формате «я повторю, как понял задачу»: бизнес-описание маркетплейса своими словами, без архитектурных терминов. Этот текст затем прогоняется через скиллы методологии — из него получаются API, доменная модель и UseCase-ы.
- [Как разбить систему на сервисы: карта маркетплейса](https://vikulin-va.ru/case/services-map/): Пошаговый разбор: как от бизнес-задачи прийти к карте сервисов маркетплейса — Event Storming, Bounded Contexts, кто чем владеет, как сервисы общаются и что происходит при отказе соседа.
- [Notification Service: как устроена отправка уведомлений](https://vikulin-va.ru/case/notification-service/): Как устроен сервис уведомлений в маркетплейсе: Kafka-потребитель событий заказа, email через Mailgun, push через FCM, идемпотентность, ретраи и журнал доставки — разбор на конкретном кейсе.
- [Catalog Service: как устроен сервис каталога товаров](https://vikulin-va.ru/case/catalog-service/): Разбираем Catalog Service из кейса маркетплейса: жизненный цикл карточки товара, разграничение доступа между продавцом и Order Service, схема базы данных, REST-контракт и типичные ошибки проектирования.
- [Catalog Service: от бизнес-описания до кода за один рабочий день](https://vikulin-va.ru/case/catalog-service-walkthrough/): Пошаговый разбор: как бизнес-описание маркетплейса превращается в работающий Spring Boot сервис с тестами. Реальная последовательность команд, выдержки из кода, результат — за 3 часа вместо 2–3 дней.
- [Order Service: как устроен сервис заказов в маркетплейсе](https://vikulin-va.ru/case/order-service/): Разбираем, как устроен сервис заказов в маркетплейсе: жизненный цикл заказа от черновика до завершения, три агрегата (Order, Dispute, Refund), как они координируются через события, и зачем нужны споры и возвраты как отдельные сущности.

## Domain-Driven Design

- [Domain Driven Design](https://vikulin-va.ru/domain-driven-design/): Domain-Driven Design в Java/Spring: что такое DDD, стратегические паттерны (Bounded Context, Context Map, Ubiquitous Language), тактические (Entity, Value Object, Aggregate, Domain Event, Repository), интеграционные (ACL, OHS), принципы проектирования. Объяснение прозой с примерами кода. Правила-якоря с кодами R-ENT/R-VO/R-AGG — в DDD Tactical Style Guide.
- [Стратегические паттерны DDD на Python](https://vikulin-va.ru/domain-driven-design/python/02-strategic-patterns/): Стратегические паттерны DDD с примерами на Python: Bounded Context, Context Map, Ubiquitous Language и отношения контекстов.
- [Тактические паттерны DDD на Python](https://vikulin-va.ru/domain-driven-design/python/03-tactical-patterns/): Тактические паттерны DDD с примерами на Python: Entity, Value Object, Aggregate, Domain Event и Repository.
- [Интеграционные паттерны DDD на Python](https://vikulin-va.ru/domain-driven-design/python/04-integration-patterns/): Интеграционные паттерны DDD с примерами на Python: Anticorruption Layer, Open Host Service, Published Language и событийная интеграция.
- [Принципы проектирования в DDD на Python](https://vikulin-va.ru/domain-driven-design/python/05-design-principles/): Принципы проектирования в DDD с примерами на Python: инварианты, иммутабельность и богатая модель против анемичной.
- [Что такое DDD и зачем он нужен](https://vikulin-va.ru/domain-driven-design/01-what-is-ddd/): Domain-Driven Design простыми словами: какую проблему решает, что такое Ubiquitous Language, Bounded Context, Aggregate и Domain Event, когда DDD оправдан, а когда избыточен.
- [Стратегические паттерны DDD](https://vikulin-va.ru/domain-driven-design/02-strategic-patterns/): Что такое Bounded Context, Ubiquitous Language, Context Map и поддомены — объясняем с нуля: зачем делить систему на части, как зафиксировать границы и не утонуть в путанице терминов.
- [Тактические паттерны DDD](https://vikulin-va.ru/domain-driven-design/03-tactical-patterns/): Простыми словами: что такое Entity, Value Object, Aggregate, Domain Event, Repository и Factory в DDD, зачем они нужны и как выглядят на практике.
- [Интеграционные паттерны DDD](https://vikulin-va.ru/domain-driven-design/04-integration-patterns/): Как разные части большой системы общаются между собой в DDD: Anti-Corruption Layer, Open Host Service, Customer–Supplier, Conformist, Shared Kernel, Partnership, Separate Ways и Domain Events — простыми словами с примерами.
- [Принципы проектирования в DDD](https://vikulin-va.ru/domain-driven-design/05-design-principles/): Как думать при проектировании доменной модели: перемалывание знаний, модель в коде, изоляция домена, явные концепции и гибкий дизайн — простыми словами с примерами на Java.
- [Онтология и доменная модель: система понятий до агрегатов](https://vikulin-va.ru/domain-driven-design/06-ontology-and-domain-model/): Откуда берётся доменная модель: онтология как система понятий домена, как понятия, связи, состояния и правила превращаются в Entity, Aggregate, Domain Event и инварианты — и почему агрегат не таблица.
- [Event Storming: добываем модель домена у бизнеса](https://vikulin-va.ru/domain-driven-design/07-event-storming/): Как за один воркшоп вытащить систему понятий из голов бизнеса: события домена на стикерах, хронология, горячие точки, команды и агрегаты — и как из кластеров событий проступают границы контекстов.
- [Стратегические паттерны DDD на TypeScript](https://vikulin-va.ru/domain-driven-design/node/02-strategic-patterns/): Стратегические паттерны DDD с примерами на TypeScript: Bounded Context, Context Map, Ubiquitous Language и отношения контекстов.
- [Тактические паттерны DDD на TypeScript](https://vikulin-va.ru/domain-driven-design/node/03-tactical-patterns/): Тактические паттерны DDD с примерами на TypeScript: Entity, Value Object, Aggregate, Domain Event и Repository.
- [Интеграционные паттерны DDD на TypeScript](https://vikulin-va.ru/domain-driven-design/node/04-integration-patterns/): Интеграционные паттерны DDD с примерами на TypeScript: Anticorruption Layer, Open Host Service, Published Language и событийная интеграция.
- [Принципы проектирования в DDD на TypeScript](https://vikulin-va.ru/domain-driven-design/node/05-design-principles/): Принципы проектирования в DDD с примерами на TypeScript: инварианты, иммутабельность и богатая модель против анемичной.
- [Стратегические паттерны DDD на Go](https://vikulin-va.ru/domain-driven-design/go/02-strategic-patterns/): Стратегические паттерны DDD с примерами на Go: Bounded Context, Context Map, Ubiquitous Language и отношения контекстов.
- [Тактические паттерны DDD на Go](https://vikulin-va.ru/domain-driven-design/go/03-tactical-patterns/): Тактические паттерны DDD с примерами на Go: Entity, Value Object, Aggregate, Domain Event и Repository.
- [Интеграционные паттерны DDD на Go](https://vikulin-va.ru/domain-driven-design/go/04-integration-patterns/): Интеграционные паттерны DDD с примерами на Go: Anticorruption Layer, Open Host Service, Published Language и событийная интеграция.
- [Принципы проектирования в DDD на Go](https://vikulin-va.ru/domain-driven-design/go/05-design-principles/): Принципы проектирования в DDD с примерами на Go: инварианты, иммутабельность и богатая модель против анемичной.

## Архитектурные паттерны

- [Гексагональная архитектура](https://vikulin-va.ru/patterns/hexagonal/): Что такое Ports & Adapters и зачем это нужно: изоляция бизнес-логики от баз данных, фреймворков и внешних API. Простое объяснение с нуля — порты, адаптеры, правило зависимостей и главный выигрыш для тестов.
- [CQRS](https://vikulin-va.ru/patterns/cqrs/): Простыми словами: что такое CQRS, зачем разделять команды и запросы, как устроены write-модель и read-модель, что такое eventual consistency и когда CQRS стоит применять, а когда лучше обойтись без него.

## Микросервисы и API

- [REST API](https://vikulin-va.ru/rest-api/): REST API простыми словами: URL и ресурсы, query-параметры, JSON и ответы, обработка ошибок, версионирование, OpenAPI, alias- и action-эндпоинты — с примерами на Java, Go, Node, Python.
- [Паттерны аутентификации и авторизации](https://vikulin-va.ru/patterns/auth-patterns/): Простыми словами: аутентификация против авторизации, JWT и сессии, OAuth2 с PKCE для браузера и мобильных приложений, RBAC и ABAC, защита сервис-сервис, PII в логах и аудит — когда что выбрать и почему.
- [Apache Kafka](https://vikulin-va.ru/kafka/): Раздел про Apache Kafka: основы (топики, партиции, гарантии доставки, retention) и продовая практика (Spring Kafka, DLQ, Schema Registry, consumer lag, security, KRaft, performance tuning). Со схемами и примерами на Java/Spring.
- [Java Style Guide](https://vikulin-va.ru/standards/backend/code-style/): Java Style Guide — языко-специфичный раздел Java-биндинга UCP (коды JS-*): нейминг, импорты, выражения, Lombok-дефолты. Python-аналог — скилл ucp-py-style-review.
- [Модель C4](https://vikulin-va.ru/c4-model/): Модель C4 Саймона Брауна: четыре уровня описания архитектуры — Context, Container, Component, Code. Нотации, что показывать на каждом уровне и примеры диаграмм на сквозном кейсе маркетплейса.
- [Архитектурный выбор](https://vikulin-va.ru/architecture-choice/): Архитектурные развилки и как их решать: монолит или микросервисы, выбор хранилищ, sync или async, MVC или WebFlux, ADR для фиксации решений, роль архитектора и AI-скиллы.

## Open-source библиотеки и инструменты

- [usecase-pattern](https://github.com/remodov/usecase-pattern): Java-библиотека Use Case Pattern — UseCase / UseCaseHandler / UseCaseDispatcher, Spring Boot auto-configuration, метрики Micrometer
- [ddd-building-blocks](https://github.com/remodov/ddd-building-blocks): DDD-абстракции для Java — Entity, ValueObject, AggregateRoot, DomainEvent
- [hexagonal-architecture](https://github.com/remodov/hexagonal-architecture): аннотации портов/адаптеров + готовые ArchUnit-правила
- [usecase-pattern-skills](https://github.com/remodov/usecase-pattern-skills): Claude Code skills для review и design по правилам методологии (REST API, Java code style, тесты, DDD-тактика, Use Case Pattern, спецификации)
- [order-service](https://github.com/remodov/order-service): сквозной пример — полная Tier C спецификация и код Order Service из кейса маркетплейса

## Об авторе

- [Обо мне](https://vikulin-va.ru/about/): Вадим Викулин — автор мультиязычной методологии Use Case Pattern (Java/Spring, Python/FastAPI), тимлид с 17-летним опытом. DDD, REST API, архитектура backend-команд, AI-скиллы Claude.

## Optional

- Markdown source for any page is available by appending .md to its URL (e.g. https://vikulin-va.ru/use-case-pattern/level-1.md). Use this for direct ingestion without HTML parsing.
