- D2, metin tabanlı olarak diyagram oluşturmaya imkân veren bir betik dili olup, kodla görsel materyalleri otomatik üretme yaklaşımı sunar
- Kullanıcılar basit bir sözdizimiyle düğümleri ve ilişkileri tanımladığında, otomatik yerleşim motoru bunları görsel olarak konumlandırır
- Belgedeki her kod parçacığı Playground'da doğrudan çalıştırılıp düzenlenebilir, böylece sonuçlar anında görülebilir
- Ancak
import kullanan bazı örnekler için, Playground'da doğrudan çalışmama istisnası vardır
- Geliştiriciler için görsel dokümantasyon otomasyonu ve iş birliği verimliliğini artıran anlamlı bir araçtır
D2 Genel Bakış
- D2, diyagramların kodla yazılabildiği bildirimsel bir betik dilidir; karmaşık yapıları metinle tanımlayıp otomatik olarak görselleştirme işlevi sunar
- Kullanıcılar düğümleri, kenarları, grupları vb. basit bir sözdizimiyle ifade eder
- Ortaya çıkan çıktı otomatik olarak hizalanır ve çeşitli stiller uygulanabilir
- Bu dil, sürüm kontrolü ve iş birliği açısından avantajlıdır; kod incelemesine veya dokümantasyon otomasyon hatlarına kolayca entegre edilebilir
Playground Özellikleri
- D2 belgelerindeki her kod parçacığı, Playground'da anında açılıp düzenlenebilen ve çalıştırılabilen etkileşimli bir özellik sunar
- Kullanıcılar fareyi parçacığın üzerine getirdiğinde Playground bağlantısı etkinleşir
- Bu sayede diyagramlar gerçek zamanlı olarak ayarlanabilir ve sonuçlar görsel biçimde doğrulanabilir
- Ancak
import ifadesi kullanan parçacıklar, harici kaynak gerektirdiği için Playground'da anında çalıştırılamama kısıtına sahiptir
Kullanım Anlamı
- D2, görsel dokümantasyon otomasyonunu destekleyerek sistem tasarımı veya veri akışının kodla birlikte yönetilebilmesini sağlar
- Geliştiriciler ve tasarımcılar aynı dille diyagram tanımlayabildiği için iş birliği verimliliği artar
- Açık kaynak ekosisteminde kod tabanlı diyagram yazımının standartlaşmasını teşvik eden bir araç olarak değerlendirilir
1 yorum
Hacker News görüşleri
D2’nin ortak geliştiricisi olarak son dönemde animasyon özelliklerini genişletme fikri üzerinde çalıştığını söylüyor
İlgili tartışmayı GitHub Discussion üzerinde açmış, görüş duymak istiyor
Genelde mermaid kullanıyor ama D2’nin daha esnek bir arayüz sunup sunamayacağını merak ediyor
LLM ile entegre tool calling özelliği ya da MCP gibi kullanıcı dostu arayüzler için plan olup olmadığını da sormak istiyor
Çok sayıda nesneyi render ederken motorla uğraşmak zorunda kalmaması hoşuna gitmiş
Ancak sdk/d2lib dokümantasyonu yetersiz olduğu için başta biraz deneme yanılma yaşamış
Ama gösterişli animasyonların mutlaka gerekli olduğunu düşünmüyor. Vurgu gerektiğinde sadece rengi değiştirmek daha sezgisel geliyor
Ama metin değişikliği yüzünden tüm diyagramın oynaması dikkat dağıtıcı olabilir
Ayrıca Swimlane diyagramları için resmi destek görmek istiyor
D2 ya da Penrose gibi araçları Python ile sararak veri odaklı diyagram betikleme denemeleri yapıyor
Ancak çoğu bildirime dayalı araç “declare, then tweak” iş akışını desteklemediği için kullanışsız buluyor
Penrose’ta düzeltme yapmak kolay ama sonuçlar rastgele ve öngörülemez olabiliyor
Açık kaynak motorda mümkün değil ama Freehand özelliği ile kısmen ayarlanabiliyor
D2 sözdiziminin genel amaçlı programlama dillerinde ne kadar yakından uygulanabileceğini merak etmiş
Python’da operatör aşırı yükleme kısıtları nedeniyle tamamen aynı DSL zor, ama string operatörü aşırı yükleme ile benzer bir şey denenebilir
a <- b | "edge"benzeri bir sözdizimi taklit edilebilirAma bunu gerçekten kullanırsa hayalet olup musallat olacağını diye şaka yapıyor
"x" --> "y" | "hello world"gibi bir DSL yapılabiliyorYine de aşırı kullanmak iyi bir fikir değil
x >> y << "label"biçiminde basit bir iç DSL yazılabiliyorDiagram sınıfında bir nesne modeli kurup buna bir renderer bağlamak da mümkün
mgmt projesinin ana yazarı olarak DAG’lerle çok çalıştığını söylüyor
Düğümler ve kenarlar eklenip çıkarılırken görsel olarak kararlı ve animasyonlu geçişlere sahip bir diyagrama ihtiyaç duyuyor
Graphviz’de her anlık görüntüde yerleşim oynadığı için rahatsız edici buluyor
D2’nin Sketch modu ile etkileşimli özellikleri gerçekten çok faydalı bulunuyor
Tooltip’ler ve bağlantılar sayesinde diyagramların kullanım değeri ciddi biçimde artıyor
D2’yi uzun süredir kullandığını ve kurum içinde de aktif olarak önerdiğini söylüyor
Ama kurumsal lisans ücretleri çok yüksek olduğu için yalnızca kişisel kullanımda kalmış
TALA lisansının yıllık 3000 dolar, kişisel kullanımın da 120 dolar olması pahalı bulunuyor
Helm chart ya da sistem açıklamalarını LLM’e verip otomatik diyagram üretme özelliğini ise devrim niteliğinde görüyor
D2’nin ASCII render desteği son dönemde gündem olmuştu
İlgili tartışma önceki gönderide sürüyor
D2 oldukça eski olmasına rağmen hâlâ mermaid kadar tanınmıyor gibi görünüyor
Özellik bakımından çok daha güçlü olduğu için daha fazla kişi tarafından bilinmesini istiyorlar
Kendi yapay zeka platformları zo.computer üzerinde diyagram üretim aracı olarak D2’yi benimsemişler
mermaid’den daha yüksek ifade gücü sunduğu için AI tabanlı görselleştirme için uygun buluyorlar
D2 harika olsa da PlantUML ya da mermaid karşısında belirleyici bir fark yaratan özelliği eksik görünüyor
Hâlâ “diyagram kodunun killer app’i” denebilecek şeyi bekliyorlar
npm kurulumu gerektirmemesi de beğeniliyor
Ancak mermaid, Obsidian gibi araçlarla entegrasyon konusunda daha güçlü