Modelith: Sade Dil ile Domain Modelleri Oluşturmak
Kodunla Sohbet Etmek: Modelith ile Domain Modellerini Canlı Tutmak
Çoğu proje iyi niyetlerle başlar, bu hep böyledir. Birisi beyaz tahtada domain modelini çizer, herkes başıyla onaylar ve sonra... model, kimsenin güncellemediği bir Confluence sayfasında sessizce ölüp gider.
Sorun domain modeling kavramının kendisinde değil. Asıl sorun şu: domain modelleri genellikle:
- Bir kez yazılır ve unutulur
- Koddan ayrı tutulur
- Sadece belirli araçlarla okunabilir
- Otomatik doğrulaması zordur
Modelith farklı bir yaklaşım benimsiyor. Domain modelinizi üretip arşive attığınız bir teslimat olarak görmek yerine, kodun yanında yaşayan, konuşma yoluyla oluşturulan ve CI'da otomatik doğrulanan canlı bir artifact olarak ele alıyor.
Domain Model Nedir, Tam Olarak?
Devam etmeden önce burada biraz sohbet edelim. Domain model, sisteminizin kavramsal haritasıdır — isimler (entity'ler), aralarındaki ilişkiler ve hepsini yöneten kurallar. Ne bir veritabanı şeması ne de bir API spesifikasyonu. Sisteminizin ne olduğunu ifade eden, düz dilde yazılmış, canonical hali.
Bunu ekibinizin paylaştığı ortak bir kelime dağarcığı gibi düşünün. Herkes aynı modelden okuduğunda, konuşmalar daha net hale gelir, yeni kişiler hızla adapte olur ve yeni servisler ya da özellikler eklemek, eski kodın içinde arkeolojik kazı yapmaya benzemez.
Modelith İş Akışı: Anlat, Taslak Çıkar, Doğrula, Render Et
İşte işlerin ilginçleştiği yer burası. Modelith ile YAML yazmıyorsunuz. YAML hakkında bile düşünmüyorsunuz. Domain kavramlarınızı bir AI agent'a (özellikle bir Claude Code skill'ine) düz İngilizce olarak anlatıyorsunuz, agent da altındaki YAML'i sizin için taslak olarak oluşturuyor.
Akış şöyle görünüyor:
Anlat — Domaininizi düz İngilizce konuşarak anlatıyorsunuz. "Müşterilerimiz var, sipariş verebiliyorlar, siparişlerin içinde birden fazla ürün oluyor ama müşterilerin aynı anda en fazla üç aktif siparişi olabiliyor."
Oluştur — Claude Code eklentisi açıklamalarınızı bir
modelith.yamldosyasına çeviriyor, bu sırada doğrulama da yapıyor.Doğrula — Domain'inizin eksik veya tutarsız bir şeyler içerip içermediğini kontrol etmek için
modelith lintkomutunu çalıştırıyorsunuz. Bu komut aynı zamanda CI kapınız oluyor.Render Et —
modelith renderçalıştırdığınızda, içinde Mermaid diyagramları olan Markdown üretiyorsunuz. Bunu YAML ile birlikte commit'liyorsunuz.
Render edilmiş Markdown herhangi bir araç olmadan insan tarafından okunabilir halde. YAML ise makine tarafından okunabilir, tek doğru kaynak. Ve CI, ikisinin asla birbirinden ayrılmamasını sağlıyor — generated-code kontrolü gibi düşünün, ama domain modeliniz için.
Neden Bu Yaklaşım İşe Yarıyor
Düz dil eşiği düşürüyor
Ekipteki herkes JSON Schema veya UML diyagramı okumaktan hoşlanmaz. Ama herkes düz İngilizce'yi okuyabilir. Düz dili giriş noktası haline getirerek, Modelith domain modeling'i demokratikleştiriyor. Ürün müdürünüz katkıda bulunabilir. QA mühendisiniz inceleyebilir. Jr. developer'ınız büyük resmi gerçekten anlayabilir.
AI sıkıcı işleri hallediyor
YAML'ı elle yazmak hem hataya açık hem de sırf sıkıcı. Açıklamalarınızdan geçerli YAML'a çeviri işini bir AI agent'a bırakmak, zihinsel yükü omuzlarınızdan alıyor ve aynı zamanda hassasiyeti koruyor.
CI doğrulaması kaymayı önlüyor
Bu, ekipler için en önemli özellik. Domain modeliniz artık geliştirme workflow'unuzun birinci sınıf vatandaşı oluyor. Domain'i değiştiren her PR otomatik olarak doğrulanıyor. Birisi YAML'ı güncelliyor ama dokümantasyonu yeniden oluşturmayı unutuyorsa, CI yakalıyor.
Model kodun yakınında kalıyor
Domain modeliniz kodunuzla aynı repository'de yaşadığında, güncel kalması çok daha kolay. Pull request'lerde inceleniyor. Özellikler değiştiğinde güncelleniyor. Başka bir sistemde, kimsenin kontrol etmeyi hatırlamadığı eskimiş dokümantasyon olmaktan çıkıyor.
Nasıl Başlanır
Modelith kullanımı kolay olacak şekilde tasarlanmış. Baştan sona tüm şemayı anlamanıza gerek yok. Küçük başlayın:
- Claude Code eklentisini kurun
- Domaininizden birkaç temel kavramı anlatın
- AI'ın YAML taslağı oluşturmasına izin verin
modelith lintçalıştırarak neyin eksik olduğunu görün- Iterate edin
Projede sıfırdan gerçek bir model oluşturmayı adım adım gösteren çalışma örnekleri var — otopark garajı örneği iyi bir başlangıç noktası.
Büyük Resim
Modelith, AI destekli geliştirmedeki daha geniş bir trendi temsil ediyor: doğal dili arayüz katmanı olarak kullanmak, altında makine taraflı artifact'leri tutmak. Ne demek istediğinizi yazıyorsunuz; tooling tutarlılığı ve doğrulamayı sağlıyor.
Karmaşık sistemler kuran ekipler için — özellikle kelime dağarcığının kritik olduğu alanlarda (fintech, sağlık, lojistik, önemli iş kuralları olan her şey) — bu yaklaşım dönüştürücü olabilir. Paylaşılan, doğrulanmış, canlı bir domain model, daha az yanlış anlaşılma, daha hızlı adaptasyon ve daha iyi tasarlanmış sistemler demek.
Araç hala gelişiyor, ama temel fikir sağlam. Domain modeliniz bir sonradan düşünce ya da proje başlangıcından kalma bir fosil olmamalı. Kodunuzla birlikte evrilen, konuşma yoluyla oluşturulan ve otomatik doğrulananan canlı bir doküman olmalı.
Projelerinizde domain modellerini güncel tutmakta zorlandıysanız, Modelith'e bir şans vermeye değer. Bazen en iyi tooling en güçlü olanı değil — doğru davranışı en kolay yol haline getirenidir.
Başlamak için modelith.sh adresine göz atın.