Devrim Mehmet Logo

Mermaid Nedir? Ne İşe Yarar ve Nerelerde Kullanılır?

3 dk okuma
Mermaid Nedir? Ne İşe Yarar ve Nerelerde Kullanılır?

Mermaid Nedir? Ne İşe Yarar ve Nerelerde Kullanılır?

Modern yazılım geliştirme süreçlerinde, sistemleri görselleştirmek hem iletişimi kolaylaştırır hem de karmaşıklığı azaltır. İşte tam bu noktada Mermaid devreye girer.

Mermaid Nedir?

Mermaid, metin tabanlı (text-based) bir diyagram oluşturma aracıdır. Yani klasik grafik araçlarıyla sürükle-bırak yapmak yerine, diyagramları kod yazar gibi tanımlarsınız. Bu yaklaşım sayesinde:
  • Diyagramlar versiyon kontrolüne (Git) uygun hale gelir
  • Kod ile birlikte saklanabilir
  • Otomatik olarak üretilebilir ve güncellenebilir
Mermaid, JavaScript tabanlıdır ve Markdown destekleyen birçok platformda çalışır (GitHub, GitLab, Notion, Obsidian vb.).

Mermaid Ne İşe Yarar?

Mermaid’in temel amacı, yazılım süreçlerini basit ve okunabilir metinlerle görselleştirmektir. Başlıca kullanım amaçları:
  • Sistem mimarisi çizmek
  • Akış diyagramları oluşturmak
  • Sequence diagram (sıralı etkileşim) göstermek
  • Veritabanı ilişkilerini modellemek
  • CI/CD pipeline’larını görselleştirmek

Nerelerde Kullanılır?

Mermaid oldukça geniş bir kullanım alanına sahiptir: Canlı Kullanım Linki

1. Teknik Dokümantasyon

README dosyalarında veya teknik dokümanlarda:
  • API akışları
  • Servis ilişkileri

2. Yazılım Mimari Tasarımı

  • Microservice yapıları
  • Katmanlı mimariler

3. Agile & Süreç Yönetimi

  • İş akışları (workflow)
  • Süreç diyagramları

4. Eğitim ve Sunumlar

  • Algoritma anlatımları
  • Veri yapıları

Mermaid Diyagram Türleri ve Örnekler

Aşağıda en sık kullanılan Mermaid diyagram türlerinden bazılarını bulabilirsin.

1. Flowchart (Akış Diyagramı)

flowchart TD
    A[Başla] --> B{Karar Ver}
    B -->|Evet| C[İşlem 1]
    B -->|Hayır| D[İşlem 2]
    C --> E[Bitir]
    D --> E
Ne işe yarar?
  • İş akışlarını göstermek
  • Algoritma adımlarını görselleştirmek

2. Sequence Diagram (Sıralı Diyagram)


sequenceDiagram
    participant Kullanıcı
    participant Frontend
    participant Backend
    participant Database

Kullanıcı->>Frontend: Giriş yap
Frontend->>Backend: Login isteği
Backend->>Database: Kullanıcı kontrolü
Database-->>Backend: Sonuç
Backend-->>Frontend: Token
Frontend-->>Kullanıcı: Başarılı giriş 

Ne işe yarar?

  • Sistemler arası iletişimi göstermek
  • API çağrılarını modellemek

3. Class Diagram (Sınıf Diyagramı)

classDiagram
    class Kullanici {
        +String ad
        +String email
        +girisYap()
    }

class Siparis {
    +int id
    +tarih
    +olustur()
}

Kullanici --> Siparis : oluşturur</mermaid>

Ne işe yarar?

  • OOP tasarımını göstermek
  • Domain model oluşturmak

4. ER Diagram (Veritabanı İlişkisi)


erDiagram
    KULLANICI ||--o{ SIPARIS : verir
    SIPARIS ||--|{ URUN : içerir

KULLANICI {
    int id
    string ad
}

SIPARIS {
    int id
    date tarih
}

URUN {
    int id
    string isim
}

Ne işe yarar?

  • Veritabanı tasarımı
  • Entity ilişkileri

5. State Diagram (Durum Diyagramı)

stateDiagram-v2
    [*] --> Beklemede
    Beklemede --> İşleniyor
    İşleniyor --> Tamamlandı
    İşleniyor --> Hata
    Hata --> Beklemede
    Tamamlandı --> [*]
Ne işe yarar?
  • Sistem durumlarını modellemek
  • Lifecycle süreçleri göstermek

Mermaid Kullanmanın Avantajları

✅ 1. Kod Gibi Yönetilebilir

  • Git ile versiyonlanabilir
  • Değişiklikler diff olarak görülebilir

✅ 2. Hızlı ve Pratik

  • UI tool açmaya gerek yok
  • Markdown içine direkt yazılabilir

✅ 3. Otomasyon Dostu

  • CI/CD içinde üretilebilir
  • Dokümantasyon pipeline’larına entegre edilebilir

✅ 4. Platform Bağımsız

  • GitHub, GitLab, Notion, VS Code gibi ortamlarda çalışır

Dezavantajları

❌ 1. Görsel Özelleştirme Sınırlı

  • Figma veya Draw.io kadar esnek değil

❌ 2. Karmaşık Diyagramlarda Okunabilirlik

  • Çok büyük diyagramlar zor yönetilebilir

Sonuç

Mermaid, özellikle geliştiriciler için tasarlanmış, kod ile diyagram üretmeyi mümkün kılan güçlü bir araçtır. Teknik dokümantasyonu sadeleştirir, ekip içi iletişimi güçlendirir ve yazılım süreçlerini daha anlaşılır hale getirir. Eğer projelerinde:
  • Dokümantasyonu kodla birlikte tutmak istiyorsan
  • Diyagramları hızlıca oluşturmak istiyorsan
  • Versiyon kontrolü önemliyse
[Mermaid](https://mermaid.js.org) kesinlikle öğrenmeye değer bir araçtır.