Modelith: Cum să construiești sisteme cu modele de domeniu pe înțelesul tuturor
Cum vorbești cu codul tău: Modelith aduce modelele de domeniu la viață
Să fim onești — majoritatea proiectelor încep cu intenții bune. Cineva desenează modelul de domeniu pe o tablă albă, toată lumea dă din cap în semn de aprobare, și apoi... totul moare liniștit într-o pagină de Confluence pe care nimeni nu o mai actualizează.
Problema nu e conceptul de domain modeling. E că modelele de domeniu, în general:
- Sunt scrise o dată și uitate
- Sunt menținute separat de cod
- Pot fi citite doar în instrumente specifice
- Se validează greu automat
Modelith ia un drum diferit. În loc să trateze modelul de domeniu ca pe un livrabil pe care îl produci și arhivezi, îl transformă într-un artifact viu care stă lângă codul tău, se scrie prin conversație și se validează automat în CI.
Ce înseamnă, de fapt, un Domain Model?
Înainte să mergem mai departe, să clarificăm. Un domain model e harta conceptuală a sistemului tău — substantivele (entitățile), relațiile dintre ele și regulile care le guvernează. Nu e un schema de bază de date și nici o specificație de API. E expresia canonică, în limbaj simplu, a ce face sistemul tău.
Gândește-te la el ca la vocabularul pe care întreaga echipă îl împărtășește. Când toată lumea citește din același model, conversațiile devin mai clare, onboarding-ul se accelerează, iar adăugarea de servicii sau funcționalități noi nu mai pare o săpătură arheologică prin codul legacy.
Workflow-ul Modelith: Descrie, Draft, Validează, Render
Aici lucrurile devin interesante. Cu Modelith, nu scrii YAML direct. Nici nu te gândești la YAML. Descrii conceptele de domeniu în limbaj natural unui agent AI (mai specific, un skill Claude Code), iar agentul generează YAML-ul din spate pentru tine.
Fluxul arată cam așa:
Descrie — Vorbești despre domeniul tău în engleză simplu. „Avem clienți care pot plasa comenzi, iar comenzile conțin mai multe produse, dar clienții pot avea maximum trei comenzi active în același timp."
Author — Plugin-ul Claude Code transformă descrierea ta într-un fișier
modelith.yaml, validând pe parcurs.Validează — Rulezi
modelith lintpentru a verifica completitudinea și consistența. Asta devine poarta ta de CI.Render — Rulezi
modelith renderpentru a genera Markdown cu diagrame Mermaid. Commituiesti asta lângă YAML.
Markdown-ul generat poate fi citit de oameni fără niciun tool. YAML-ul e sursa de adevăr pentru mașină. Și CI-ul asigură că niciodată nu se desincronizează — gândește-te la asta ca la o verificare de generated code, dar pentru modelul tău de domeniu.
De ce funcționează abordarea asta
Limbajul simplu coboară bariera
Nu toată lumea din echipă se simte confortabil citind JSON Schema sau diagrame UML. Dar toată lumea poate citi engleză simplă. Făcând limbajul natural punctul de intrare, Modelith democratizează domain modeling-ul. Product managerul tău poate contribui. QA engineer-ul poate revizui. Juniorul tău poate înțelege cu adevărat imaginea de ansamblu.
AI-ul se ocupă de părțile plictisitoare
Scrisul YAML manual e predispus la erori și, să fim sinceri, plictisitor. Lăsând un agent AI să facă traducerea de la descrierea ta la YAML valid înseamnă că ai o parte din povara cognitivă ridicată de pe umerii tăi, menținând precizia.
Validarea din CI previne drift-ul
Asta e feature-ul killer pentru echipe. Modelul tău de domeniu devine cetățean de rangul întâi în workflow-ul de dezvoltare. Fiecare PR care schimbă domeniul e validat automat. Dacă cineva actualizează YAML-ul dar uită să regenereze documentația, CI-ul prinde asta.
Modelul stă aproape de cod
Când modelul tău de domeniu trăiește în același repository cu codul tău, rămâne relevant. E revizuit în pull requests. Se actualizează când se schimbă funcționalitățile. Nu devine documentație stagnată în alt sistem pe care nimeni nu își mai amintește să îl verifice.
Cum să începi
Modelith e gândit să fie accesibil. Nu trebuie să înțelegi întregul schema de la început. Începe mic:
- Instalează plugin-ul Claude Code
- Descrie câteva concepte cheie din domeniul tău
- Lasă AI-ul să genereze YAML-ul
- Rulează
modelith lintpentru a vedea ce lipsește - Iterează
Proiectul include exemple lucrate (exemplul lor cu parcarea e un punct de start bun) care te ghidează prin construirea unui model real de la zero.
Imaginea de ansamblu
Modelith reprezintă o tendință mai largă în dezvoltarea asistată de AI: folosirea limbajului natural ca layer de interfață, păstrând artifactele machine-readable dedesubt. Scrii ce vrei să spui; tooling-ul asigură consistența și validarea.
Pentru echipele care construiesc sisteme complexe — mai ales în domenii unde vocabularul contează (fintech, healthcare, logistică, orice cu reguli de business semnificative) — această abordare ar putea fi transformatoare. Un domain model partajat, validat și viu înseamnă mai puține neînțelegeri, onboarding mai rapid și sisteme mai bine gândite.
Tool-ul evoluează încă, dar idea centrală e solidă. Modelul tău de domeniu nu ar trebui să fie o idee de ultim moment sau o relicvă din kickoff-ul proiectului. Ar trebui să fie un document viu care evoluează odată cu codul tău, scris prin conversație și validat automat.
Dacă te-ai zbătut să ții modelele de domeniu relevante în proiectele tale, Modelith merită explorat. Uneori cel mai bun tooling nu e cel mai puternic — e cel care face comportamentul corect cea mai simplă cale.
Aruncă o privire pe modelith.sh pentru a începe.