Як я створив Laravel event-sourcing generator, а згодом — його AI-версію.

Перекладено ШІ 0 Alberto Arena 06 серпня, 2026

Чи здатний AI повністю замінити класичні генератори коду для Laravel? Розбираємося, чому для моделювання Event Sourcing варто обрати інтелектуального партнера, а для стабільного результату — перевірений детермінований інструмент.

I built a Laravel event-sourcing generator, then the AI version

Якось я створив генератор коду для Event Sourcing у Laravel. Ви запускаєте одну Artisan-команду для spatie/laravel-event-sourcing і отримуєте готові aggregates, events, projectors та reactors. Це детермінований інструмент: однакові вхідні дані завжди дають однаковий результат. Нещодавно він перетнув позначку у 10 000 завантажень на Packagist.

Згодом я розробив Claude Code skill, який генерує такий самий код, але замість команди все починається з діалогу. Мене часто запитують: чи замінить цей AI-інструмент мій генератор?

Коротка відповідь — ні. І причина цікавіша, ніж саме питання.

Якщо коротко: AI не «вбив» генератор коду. Він взяв на себе фазу дизайну, залишивши детерміновану частину там, де передбачуваність досі має критичне значення.

У чому сила генератора

Головна цінність генератора — передбачуваність. Ви виконуєте composer require albertoarena/laravel-event-sourcing-generator, потім php artisan make:event-sourcing-domain Order і отримуєте ідентичні байт-у-байт файли при кожному запуску. Жодних токенів, API-ключів, залежності від мережі чи перевірок на «галюцинації» нейромережі. Він працює однаково як у CI, так і на локальному ноутбуці.

Це ідеально, коли структура домену вже зрозуміла: я знаю межі aggregate, знаю події, і мені просто потрібен стабільний бойлерплейт. Генератор не допоможе з'ясувати, чи правильні ці межі взагалі — він припускає, що найскладнішу частину роботи я вже виконав.

У чому сила skill

Мій skill — це не просто генератор у костюмі AI. Його цінність лежить «вище» за кодом і базується на двофакторному процесі:

  • Етап 1: Дизайн. AI ставить влучні запитання про домен і формує ADR (Architecture Decision Record): aggregates, commands, events, projectors, reactors та інваріанти, що їх пов’язують. Код не пишеться, поки я не схвалю цей ADR.
  • Етап 2: Реалізація. Після схвалення AI спочатку пише тести, а потім генерує весь домен і запускає тестову сюїту. Наприклад, для правила «неможливо скасувати замовлення після відправлення» тест перевірить викидання винятку ще до того, як з’явиться перший рядок коду в aggregate.

Найважливіше тут — саме дизайн. Питання штибу «Чи може подія cancel відбутися після ship?» — це моделювання, від якого залежить життєздатність Event Sourcing. Генератор ніколи не вестиме зі мною таких діалогів. Він не запитує, він просто виконує вже прийняте рішення.

Справжня лінія розподілу

Обидва інструменти видають схожий PHP-код, тому люди фокусуються на їхній схожості. Але генерація коду — це найменш цікава частина їхньої роботи. Ось реальна різниця:

  • Я вже знаю дизайн → Генератор. Детерміновано, швидко, не потребує перевірок, не залежить від LLM.
  • Я ще розробляю дизайн → Skill. Це партнер з моделювання, який залишає документацію (ADR) та створює «сітку безпеки» у вигляді тестів.

Що я обираю сам

Чесно кажучи, зараз я частіше використовую skill. Зазвичай, коли я сідаю за новий bounded context, його межі ще не визначені остаточно. П’ятихвилинний діалог про дизайн вартий того, щоб не переписувати бойлерплейт пізніше. ADR змушує мене відповісти на незручні запитання на кшталт «це має бути подія чи побічний ефект?» ще до початку кодингу.

Це не знецінює генератор. Я дістаю його, коли структура домену вже зафіксована, коли потрібно працювати в pipeline без участі LLM або коли ціна токенів та час на розмову просто не виправдані. Просто тепер такі ситуації трапляються рідше.

Де я не використовую skill

Варто бути чесним щодо обмежень. Skill призначений тільки для нових проектів (greenfield). Він проектує нові домени, але не рефакторить існуючий CRUD у Event Sourcing. Він заточений під spatie/laravel-event-sourcing v7, а не під нативну систему подій Laravel чи CQRS без Event Sourcing. Якщо у вас інша ситуація — жоден із цих інструментів вам не підійде.

Спробуйте самі

Якщо ви моделюєте новий домен і вже використовуєте Claude Code, встановити skill можна у два кроки (спочатку додати маркетплейс, потім сам плагін):

/plugin marketplace add albertoarena/claude-laravel-event-sourcing
/plugin install laravel-spatie-event-sourcing@albertoarena

Якщо дизайн уже готовий і вам потрібен лише код — використовуйте Composer:

composer require albertoarena/laravel-event-sourcing-generator
php artisan make:event-sourcing-domain Order

Детальні описи механік доступні за посиланнями: про генератор, про skill та оригінальний гайд зі створення доменів за допомогою Spatie.

Популярні

Інше, що варто прочитати

19 Оновлено 26 червня, 2026

Використання штучного інтелекту для управління перекладами в Laravel

Досліджуйте нові можливості локалізації вашого Laravel-додатку з пакунками, які використовують штучний інтелект, такими як ChatGPT та Claude. Які рішення можуть спростити ваш процес перекладу та зробити його більш точним? Читайте далі, щоб дізнатися більше!

13 Оновлено 26 червня, 2026

Створення CLI-додатка за допомогою Laravel та Docker

Зазирніть у світ Laravel, де потужний CLI-фреймворк відкриває нові можливості для розробки командного інтерфейсу. Дізнайтеся, як створити просту утиліту для перевірки акцій, яка працює з Docker, та які переваги це може принести у вашому проєкті!

15 Оновлено 26 червня, 2026

Claude Agent тепер інтегрований в AI Assistant для PhpStorm

Ви коли-небудь задумувалися, як полегшити свою роботу в Laravel? У нашій статті ми розглядаємо, як інтеграція Claude Code в PhpStorm може підвищити вашу продуктивність, спростивши процес написання коду та навчання нових розробників. Читайте далі, щоб дізнатися більше про переваги та функціональність цього потужного поєднання