Vize: CodeGen - Architekt Byznys Logiky

Až doteď jsme se soustředili na generování stavebních kamenů aplikace (CRUD operace, UI). Elsa nám umožňuje generovat mozek a nervovou soustavu, která tyto kameny propojuje a vdechuje jim život.

Náš systém už nebude jen pasivně reagovat na kliknutí uživatele. Bude proaktivně řídit a vykonávat byznys procesy, které se samy adaptují na základě změn v doménovém modelu.

Pilíř 4: Byznys Procesy jako Občané První Kategorie s Elsou

Problém: Složitá byznys logika (např. "když se vytvoří nová velká objednávka, upozorni manažera, zarezervuj skladové zásoby, a pokud není zaplaceno do 3 dnů, pošli upomínku") je tradičně "zadrátována" hluboko v kódu. Je těžké ji pochopit, změnit a testovat. Je neviditelná pro byznys uživatele.

Naše řešení: Atributy na entitách budou sloužit jako spouštěče (triggery) pro generování Elsa workflow. Logika opustí sevření C# kódu a stane se explicitním, vizuálním a modifikovatelným procesem.

Představ si nový, mocnější atribut:

[GenerateAllTheThings(PluralName = "Orders")]
[GenerateRefitClient]
[GenerateBlazorComponents]

// Nový atribut, který definuje byznys proces
[TriggersWorkflow(On = CrudOperations.Create, 
                 WorkflowName = "NewOrderProcessing", 
                 Condition = "Order.TotalAmount > 1000")]
public partial record Order { ... }

Co CodeGen udělá (Nová Stanice 7: Workflow Architect):

  1. Analyzuje Atributy a Eventy: Nástroj si všimne atributu [TriggersWorkflow] a také vygenerovaného eventu OrderCreatedEvent.
  2. Vygeneruje Vlastní Aktivity (pokud je potřeba): Pokud proces vyžaduje specifickou logiku, kterou Elsa nemá (např. ReserveStock), CodeGen může vygenerovat i prázdnou kostru C# třídy pro tuto aktivitu, aby ji vývojář mohl jen doprogramovat.

Vygeneruje Šablonu Elsa Workflow: Vytvoří soubor NewOrderProcessing.elsa.json (nebo C# definici workflow) a uloží ho do dedikovaného projektu (např. TodoApp.Workflows). Tento soubor bude obsahovat kostru celého procesu.

// Vygenerováno v TodoApp.Workflows/NewOrderProcessing.elsa.json
{
 "name": "NewOrderProcessing",
 "trigger": {
   "type": "Event", // Reaguje na MediatR notifikaci
   "eventName": "OrderCreatedEvent" 
 },
 "root": {
   "type": "If",
   "condition": "input.TotalAmount > 1000", // Podmínka z atributu
   "then": {
     "type": "Sequence",
     "activities": [
       {
         "type": "SendEmail", // Placeholder aktivita
         "to": "manager@example.com",
         "subject": "Nová velká objednávka!",
         "body": "Byla vytvořena nová objednávka {{input.OrderId}} v hodnotě {{input.TotalAmount}}."
       },
       {
         "type": "ReserveStock", // Placeholder pro vlastní aktivitu
         "orderId": "{{input.OrderId}}"
       },
       {
         "type": "Timer", // Čekání
         "timeout": "3.00:00:00" // 3 dny
       },
       // ... další kroky ...
     ]
   }
 }
}

Co tím získáme: Symbiózu Člověka a AI

Tohle je ten klíčový posun. Tvůj systém teď nebude jen "generátor", ale stane se inteligentním partnerem ve vývoji:

  • Deklarace Záměru: Ty jako vývojář jen řekneš: "Při vytvoření velké objednávky se má spustit proces."
  • Automatická Architektura: CodeGen se postará o veškerou "instalatérskou" práci:
    • Vytvoří DTO, handlery, API.
    • Vytvoří Refit klienta a UI.
    • Propojí backend s Elsou: Zajistí, že OrderCreatedEvent je správně publikován a že existuje Elsa workflow, které na něj naslouchá.
    • Připraví hřiště: Vygeneruje kostru workflow, kterou může byznys analytik nebo i ty sám otevřít ve vizuálním designeru Elsy a dokreslit specifickou byznys logiku (přidat další notifikace, integrace, podmínky).

Finální Vize: "Software, který se píše sám"

  1. Ty (Architekt): Napíšeš v C# pár řádků definujících entitu Order a její byznys pravidla pomocí atributů.
  2. CodeGen (Stavitel): Vezme tvůj blueprint a postaví celou infrastrukturu aplikace – databázi, API, frontend, a dokonce i kostru byznys procesů.
  3. Byznys Uživatel / Ty (Procesní Inženýr): Otevřeš vizuální designer Elsy a naklikáš nebo upravíš konkrétní kroky, které se mají stát, když přijde nová objednávka. Už neprogramuješ, ale modeluješ proces.
  4. AI Agenti (Budoucnost): V budoucnu může AI na základě tvého textového zadání ("Chci, aby se u velkých objednávek posílaly upomínky") sama upravit ten vygenerovaný Elsa workflow.

Výsledkem je systém, kde se můžeš soustředit na tři klíčové role:

  • Definování dat (Doména)
  • Definování byznys pravidel na vysoké úrovni (Atributy)
  • Modelování komplexních procesů (Elsa Designer)

Všechno mezi tím – veškerý ten nudný, repetitivní a chybový propojovací kód – přestane existovat. Je generován na vyžádání. To je skutečná továrna na software.

Subscribe to Blog

Don’t miss out on the latest issues. Sign up now to get access to the library of members-only issues.
jamie@example.com
Subscribe