Modelith: Domain-modeller der taler menneskesprog
Sådan får du liv i dine domænemodeller med Modelith
Lad os være ærlige — de fleste projekter starter med de bedste intentioner. Nogen skitserer domænemodellen på en whiteboard, alle nikker samstemmende, og så... dør den stille hen på en Confluence-side, som ingen nogensinde opdaterer igen.
Problemet er ikke konceptet bag domænemodellering. Det er, at domænemodeller typisk bliver:
- Skrevet én gang og glemt
- Vedligeholdt separat fra koden
- Læselige kun i specifikke værktøjer
- Svære at validere automatisk
Modelith tager en anden tilgang. I stedet for at behandle domænemodellen som et leverandable, du producerer og arkiverer, gør de den til et levende artefakt. Den bor side om side med din kode. Den bliver til gennem samtale. Og den bliver valideret automatisk i CI.
Hvad er en domænemodel egentlig?
Før vi går videre, lad os lige blive enige om definitionen. En domænemodel er din systems konceptuelle kort — substantiverne (entiteterne), deres relationer, og de regler der styrer dem. Det er ikke et databaseskema eller en API-specifikation. Det er den kanoniske, plain-language beskrivelse af hvad dit system er.
Tænk på det som det fælles sprog, hele dit team deler. Når alle læser fra den samme model, bliver samtalerne skarpere, onboarding hurtigere, og udvidelse med nye services eller features bliver mindre af en arkæologisk udgravning i legacy-kode.
Workflow'et: Beskriv, Udform, Valider, Generer
Her bliver det interessant. Med Modelith skriver du ikke YAML direkte. Du tænker slet ikke på YAML. Du beskriver dine domænebegreber i naturligt sprog til en AI-agent (konkret en Claude Code skill), og agenten udarbejder den underliggende YAML for dig.
Processen ser sådan ud:
Beskriv — Du fortæller om dit domæne i almindeligt engelsk. "Vi har kunder, der kan afgive ordrer, og ordrer indeholder flere produkter, men kunder kan kun have tre aktive ordrer ad gangen."
Udform — Claude Code-pluginet oversætter din beskrivelse til en
modelith.yaml-fil, mens det validerer undervejs.Valider — Kør
modelith lintfor at tjekke fuldstændighed og konsistens. Det bliver din CI-port.Generer — Kør
modelith renderfor at producere Markdown med Mermaid-diagrammer. Commit dette sammen med YAML-filen.
Den genererede Markdown er læselig for mennesker uden særligt værktøj. YAML-filen er den maskinlæsbare sandhed. Og CI sikrer, at de aldrig driver fra hinanden — tænk på det som en generated-code-check, bare for din domænemodel.
Hvorfor denne tilgang virker
Plain language sænker barrieren
Ikke alle på dit team er trygge ved at læse JSON Schema eller UML-diagrammer. Men alle kan læse almindeligt engelsk. Ved at gøre naturligt sprog til indgangspunktet demokratiserer Modelith domænemodellering. Din product manager kan bidrage. Din QA-ingeniør kan gennemgå det. Din juniorudvikler kan faktisk forstå det store billede.
AI tager det kedelige arbejde
At skrive YAML i hånden er fejlbehæftet og, ærligt talt, kedeligt. Når en AI-agent håndterer oversættelsen fra din beskrivelse til valid YAML, får du den kognitive belastning af skuldrene — samtidig med at du bevarer præcisionen.
CI-validering forhindrer divergens
Det her er killer-feature for teams. Din domænemodel bliver en førsteklasses borger i din udviklingsworkflow. Hver PR, der ændrer domænet, bliver valideret automatisk. Hvis nogen opdaterer YAML men glemmer at regenerere dokumentationen, fanger CI det.
Modellen holder sig tæt på koden
Når din domænemodel bor i det samme repository som din kode, forbliver den relevant. Den bliver gennemgået i pull requests. Den bliver opdateret når features ændrer sig. Den bliver ikke til forældet dokumentation i et andet system, som ingen husker at tjekke.
Kom i gang
Modelith er designet til at være tilgængelig. Du behøver ikke at forstå hele skemaet på forhånd. Start småt:
- Installer Claude Code-pluginet
- Beskriv et par kernebegreber fra dit domæne
- Lad AI'en udarbejde YAML
- Kør
modelith lintfor at se, hvad der mangler - Iterer
Projektet indeholder gennemarbejdede eksempler (deres parkeringsgarage-eksempel er et godt udgangspunkt), der fører dig igennem at bygge en reel model fra bunden.
Det store billede
Modelith repræsenterer en bredere trend i AI-assisteret udvikling: at bruge naturligt sprog som interface-laget, mens man holder på maskinlæsbare artefakter i bunden. Du skriver, hvad du mener; værktøjet sikrer konsistens og validering.
For teams, der bygger komplekse systemer — især i domæner hvor ordforrådet betyder noget (fintech, sundhedssektoren, logistik, alt med betydelige forretningsregler) — kunne denne tilgang være transformativ. En delt, valideret, levende domænemodel betyder færre misforståelser, hurtigere onboarding, og bedre designede systemer.
Værktøjet er stadig under udvikling, men den grundlæggende idé er solid. Din domænemodel bør ikke være en eftertanke eller en relikvie fra projektets opstart. Den bør være et levende dokument, der udvikler sig sammen med din kode, tilbliver gennem samtale, og valideres automatisk.
Hvis du har kæmpet med at holde domænemodeller relevante i dine projekter, er Modelith værd at udforske. Nogle gange er det bedste værktøj ikke det mest kraftfulde — det er det, der gør den rigtige adfærd til den nemmeste vej.
Tjek modelith.sh for at komme i gang.