DOMAİN-DRİVEN DESIGN: KAVRAMLAR VE UZMAN GELİŞTİRİCİLER İÇİN PRATİKLER EĞİTİMİ

Karmaşık iş alanını koda doğru yansıtın

Bounded Context, aggregate, event sourcing, CQRS ve Event Storming ile uzman düzey DDD pratiklerini uygulayın.

Eğitim, DDD'nin kavramlarını ve uzman geliştiricilerin sahada karşılaştığı pratik sorunları birleştirir. Event Storming ile alan keşfi yapar, Bounded Context sınırlarını ve Context Map ilişkilerini (ACL, Shared Kernel, Customer-Supplier) çizersiniz.

4 gün İleri Seviye Online / Yüz Yüze / Hibrit Sertifikalı

Eğitim Hakkında

Dört gün boyunca stratejik tasarımdan event sourcing ve legacy dönüşümüne DDD

Eğitim, DDD'nin kavramlarını ve uzman geliştiricilerin sahada karşılaştığı pratik sorunları birleştirir. Event Storming ile alan keşfi yapar, Bounded Context sınırlarını ve Context Map ilişkilerini (ACL, Shared Kernel, Customer-Supplier) çizersiniz. Aggregate sınırları, domain event, event sourcing, CQRS ve outbox desenini uygular; legacy sistemi strangler yaklaşımıyla dönüştürmeyi ve aggregate testlerini yazmayı çalışırsınız.

Süre ve Format

4 Gün. Her gün dört modül; sabah kavramsal oturum ve Event Storming, öğleden sonra kod atölyesi ve vaka tartışması.

Seviye

İleri Seviye — Stratejik ve taktik DDD, Event Storming, event sourcing, CQRS ve dağıtık sistem pratikleri.

Öğrenme Metodu

Katılımcılar gerçek bir iş alanı üzerinde duvar tipi Event Storming yapar, çıkan modeli C# veya Java ile aggregate ve event sourcing olarak kodlar.

Neden Bu Eğitim?

🧭Sınırları Doğru Çizin

Bounded Context ve Context Map ile hangi modülün neden ayrı olduğunu gerekçelendirirsiniz.

📜Olay Odaklı Düşünme

Domain event ve event sourcing ile denetlenebilir, zaman içinde izlenebilir modeller kurarsınız.

🏗️Legacy Dönüşümü

Anticorruption Layer ve strangler yaklaşımıyla büyük monoliti kademeli dönüştürme planı çıkarırsınız.

Anahtar Konular

domain driven design eğitimiDDDbounded contextaggregate rootevent sourcingCQRSevent stormingcontext mapanticorruption layerDDD uzman
“Model, alan uzmanının ve geliştiricinin aynı cümleyi kurabildiği yerde doğar.”

Ön Koşullar

Eğitimden verim almak için faydalı olacak bilgi ve ortam gereksinimleri

1
DDD Temeli

Entity, Value Object ve Repository kavramlarına en az giriş düzeyinde aşinalık gerekir.

2
Backend Deneyimi

En az iki yıl kurumsal backend geliştirme deneyimi önerilir.

3
Kod Ortamı

Java/Spring veya C#/.NET geliştirme ortamı ve Docker kurulu bir dizüstü bilgisayar.

4
Mesajlaşma Bilgisi

REST ve temel mesaj kuyruğu kavramlarını bilmek atölyelerde hız kazandırır.

Eğitim İçeriği

Programın gün gün akışı aşağıdadır. Bir güne tıklayarak o günün modüllerini ve içeriklerini görebilirsiniz.

Günün hedefiKatılımcı Event Storming ile alanı keşfeder, core domain'i ayırır ve Bounded Context sınırlarını çizer.
Modül 1
DDD Temelleri ve Ortak Dil
  • Domain, subdomain ve ayrımı: core, supporting, generic
  • Ubiquitous Language oluşturma ve kodda yansıtma
  • Alan uzmanıyla bilgi çıkarma (knowledge crunching) oturumları
  • Event Storming ile büyük resim keşfi
  • DDD'nin gereksiz olduğu durumlar: basit CRUD ve veri odaklı uygulamalar
  • Domain modelin iş değeri ve yatırım önceliği
Modül 2
Event Storming Atölyesi
  • Big Picture: turuncu domain event notlarıyla zaman çizelgesi
  • Command, Actor, Policy ve Read Model notlarının eklenmesi
  • Hotspot (kırmızı/mor) ile belirsizliklerin işaretlenmesi
  • Process Level ve Design Level aşamaları
  • Aggregate ve Bounded Context adaylarının duvardan çıkarılması
  • Bounded Context Canvas ile çıktının belgelenmesi
Modül 3
Stratejik Tasarım ve Bounded Context
  • Bounded Context sınırlarının dil ve model tutarlılığına göre belirlenmesi
  • Context Map ilişkileri: Shared Kernel, Customer-Supplier, Conformist
  • Anticorruption Layer, Open Host Service ve Published Language
  • Partnership ve Separate Ways kararları
  • Conway yasası ve takım sınırlarının context sınırıyla hizalanması
  • Monolit içinde modüler sınırlar ve mikroservise geçiş kriterleri
Modül 4
Taktik Tasarım Yapıtları
  • Entity ve kimlik (identity) yönetimi
  • Value Object ve değişmezlik (immutability), eşitlik değere göredir
  • Aggregate ve Aggregate Root: tutarlılık sınırı
  • Aggregate boyutu kuralları: küçük tutma ve ID ile referans verme
  • Domain Service ve ne zaman gerektiği
  • Factory ve Repository ile yaşam döngüsü yönetimi
Günün hedefiKatılımcı event sourcing, CQRS ve mesaj tabanlı entegrasyonu domain modeline güvenli biçimde bağlar.
Modül 1
Domain Events ve Event Sourcing
  • Domain Event tasarımı: geçmiş zaman adlandırma ve payload seçimi
  • Event Store ve append-only akış
  • Aggregate'in olaylardan yeniden kurulması (rehydration)
  • Snapshot stratejileri
  • Event versiyonlama ve upcasting
  • Projection ve read model güncelleme
Modül 2
CQRS ve Katmanlı Mimariler
  • Komut ve sorgu modellerinin ayrılması (CQRS)
  • Read model ve denormalize görünümler
  • Hexagonal (Ports & Adapters), Onion ve Clean Architecture karşılaştırması
  • Application Service ile Domain Service sorumluluk ayrımı
  • Eventual consistency ve kullanıcı arayüzü etkileri
  • Outbox deseni ile olay yayınının güvenilir hale getirilmesi
Modül 3
Kurumsal Entegrasyon Desenleri
  • Message Channel, Message Router ve Message Translator
  • Publish-Subscribe Channel ve Competing Consumers
  • Idempotent Receiver ve tekrar teslimat (at-least-once) yönetimi
  • Dead Letter Channel ve poison message işleme
  • Request-Reply ve Correlation Identifier
  • Transactional Outbox ve Saga ile dağıtık tutarlılık
Modül 4
Test Edilebilir Tasarım
  • Test edilebilirlik ve bağımlılık enjeksiyonu ilişkisi
  • Saf fonksiyon ve yan etkilerin sınırda toplanması
  • Zaman, rastgelelik ve I/O soyutlama (Clock, Random)
  • Test verisi oluşturma: Object Mother ve Test Data Builder
  • Test kokuları: kırılgan, yavaş, belirsiz (flaky) testler
  • Contract test ve entegrasyon testi sınırlarını belirleme
Günün hedefiKatılımcı Saga ve Specification gibi ileri teknikleri uygular, ADR ile kararları belgeler ve legacy dönüşüm planı yapar.
Modül 1
İleri DDD Pratikleri
  • Modelin evrimi: deeper insight için refactoring
  • Specification deseni ile iş kurallarının birleştirilebilir ifadesi
  • Process Manager ve Saga ile uzun süreli iş akışları
  • Legacy sistemle Anticorruption Layer üzerinden entegrasyon
  • Strangler Fig ile büyük monolitin kademeli bölünmesi
  • Given-When-Then ile aggregate ve event testleri
Modül 2
Mimari Kararlar ve Dokümantasyon
  • Architecture Decision Record (ADR) şablonu ve yaşam döngüsü
  • C4 modeli: context, container, component, code
  • arc42 ve 4+1 görünüm modeli
  • Risk storming ile mimari risklerin görselleştirilmesi
  • Paydaş yönetimi ve kararları müzakere etme
  • Mimari inceleme (review) ve ATAM'a giriş
Modül 3
Mikroservis ve Dağıtık Sistem Tasarımı
  • Servis sınırlarının iş yeteneğine göre belirlenmesi
  • API Gateway, BFF ve servis keşfi (service discovery)
  • CAP teoremi ve PACELC bakış açısı
  • Saga (orkestrasyon ve koreografi) ile dağıtık işlem
  • Circuit breaker ve Resilience4j / Polly politikaları
  • Consumer-driven contract test ve dağıtık izleme (tracing)
Modül 4
Legacy Kodda Test ve Refactoring
  • Characterization test ile mevcut davranışı sabitleme
  • Seam kavramı ve bağımlılık kırma teknikleri (Feathers)
  • Extract and Override, Wrap Method ve Sprout Class
  • Golden master / approval testing
  • Statik bağımlılık ve Singleton'ı test edilebilir hale getirme
  • Refactoring kararı için risk ve değer ölçütleri
Günün hedefiKatılımcı olay tabanlı DDD sistemini asenkron, dayanıklı ve izlenebilir biçimde çalıştırmanın gerekliliklerini uygular.
Modül 1
Mesajlaşma ve Asenkron İşleme
  • Kafka topic, partition ve consumer group mantığı
  • RabbitMQ exchange türleri ve kuyruk bağlamaları
  • Backpressure ve tüketici gecikmesi (consumer lag) izleme
  • Idempotent consumer ve exactly-once efsanesi
  • Dead letter queue ve yeniden deneme stratejileri
  • Transactional outbox ile veritabanı ve broker tutarlılığı
Modül 2
Dayanıklılık ve Aşırı Yük Yönetimi
  • Timeout, retry (exponential backoff + jitter) ve retry storm riski
  • Circuit breaker durumları: closed, open, half-open
  • Bulkhead ile kaynak izolasyonu
  • Rate limiting: token bucket ve leaky bucket
  • Load shedding ve graceful degradation
  • Chaos engineering ile hata enjeksiyonu deneyleri
Modül 3
Gözlemlenebilirlik ve Kapasite Planlama
  • Metrik, log ve trace üçlüsü
  • OpenTelemetry ile enstrümantasyon
  • RED ve USE yöntemleri ile dashboard tasarımı
  • SLO ve hata bütçesi (error budget) yönetimi
  • k6 veya JMeter ile yük, stres ve soak testi
  • Little yasası ile kapasite hesabı ve p99 gecikme analizi
Modül 4
Mimari Yaklaşımların Karşılaştırması
  • Monolit, modüler monolit ve mikroservis karşılaştırması
  • Hexagonal ve Clean Architecture bağımlılık yönü
  • Event-driven ve serverless mimarinin uygun olduğu senaryolar
  • Backend for Frontend (BFF) ve API kompozisyonu
  • Strangler Fig ile kademeli geçiş
  • Evrimsel mimari ve geri alınabilir kararlar

Eğitim Kazanımları

Program sonunda katılımcılar:

✅
Ortak Dil

Alan uzmanlarıyla ortak dil kurup core domain'i diğer alt alanlardan ayırabilirsiniz.

🔧
Context Haritası

Bounded Context sınırlarını çizip aralarındaki entegrasyon ilişkilerini Context Map ile belgeleyebilirsiniz.

🧠
Olay Odaklı Model

Domain event'leri tasarlayıp event sourcing ile aggregate durumunu yeniden kurabilirsiniz.

📐
Entegrasyon

Mesaj tabanlı entegrasyon desenleriyle gevşek bağlı sistem iletişimi kurabilirsiniz.

🧩
Mimari Belgeleme

C4 ve ADR ile mimariyi sade, sürdürülebilir şekilde belgeleyebilirsiniz.

🛡️
Legacy Kod

Testsiz legacy kodu karakterizasyon testleriyle güvenceye alıp güvenle dönüştürebilirsiniz.

📊
Dayanıklılık

Aşırı yük altında servis kalitesini koruyan dayanıklılık desenlerini uygulayabilirsiniz.

🚀
Yaklaşım Seçimi

Farklı mimari yaklaşımları bağlama göre karşılaştırıp geçiş yol haritası hazırlayabilirsiniz.

Kimler İçin Uygundur?

  • DDD temelini bilen
  • karmaşık iş sistemlerinde model tasarlayan kıdemli geliştiriciler
  • takım liderleri
  • yazılım mimarları

Sıkça Sorulan Sorular

Bu eğitim kimler için uygundur?
DDD temelini bilen, karmaşık iş sistemlerinde model tasarlayan kıdemli geliştiriciler, takım liderleri ve yazılım mimarları.
Eğitim sonunda sertifika verilir mi?
Eğitimi tamamlayan katılımcılara Digital Vizyon Akademi Katılım ve Başarı Sertifikası verilir.
Eğitim kaç gün sürer ve nasıl işlenir?
Eğitim 4 gündür; katılımcılar gerçek bir iş alanı üzerinde duvar tipi Event Storming yapar, çıkan modeli C# veya Java ile aggregate ve event sourcing olarak kodlar.
DDD için hangi dil kullanılır?
Örnekler Java ve C# ile verilir; kavramlar dilden bağımsızdır ve katılımcı kendi yığınında çalışabilir.
Event sourcing zorunlu mu işlenir?
Event sourcing bir seçenek olarak işlenir; ne zaman fayda sağladığı, ne zaman gereksiz karmaşıklık getirdiği vakalarla tartışılır.

Sertifikalandırma

Bu eğitim Digital Vizyon Akademi Başarı Sertifikası ile tamamlanır.

Eğitim başında “Ön Test”, bitiminde “Son Test” uygulanarak gelişim ölçümlenir. Değerlendirme formunu dolduran katılımcılar sertifikalarını alır. Sertifikanızın geçerliliğini Sertifika Sorgulama sayfasından doğrulayabilirsiniz.

Örnek Sertifika d Digital Vizyon AKADEMİ KATILIM SERTİFİKASI Bu sertifika [Katılımcı Adı Soyadı] adlı katılımcının aşağıdaki eğitim programını başarıyla tamamladığını belgeler. Domain-Driven Design: Kavramlar ve Uzman Geliştiriciler için Sertifika Kodu DV-2026XX00 Tarih 27.10.2026 Yetkili İmza DV AKADEMİ

Eğitim Bilgileri

Süre4 gün
Seviyeİleri Seviye
FormatOnline / Yüz Yüze / Hibrit
Sertifika✓ Var
Hemen Bilgi Al
İlgili Eğitimler

Bu Eğitimle Birlikte Tercih Edilenler

Yazılım Mimarisi ve Tasarım DesenleriIIBA İş Analistleri İçin UML Modelleme Eğitimi
Yazılım Geliştirme Eğitimleri

IIBA İş Analistleri İçin UML Modelleme Eğitimi

3 günTemelOnline / Yüz Yüze / Hibrit

İş analistleri için UML modelleme eğitimi: use case, etkinlik, durum, sınıf, sıra diyagramları ve BPMN ile gereksinim modelleme, 3 gün.

Detayları Gör →
Yazılım Mimarisi ve Tasarım DesenleriInjection Principles & Applying SOLID Principles Eğitimi
Yazılım Geliştirme Eğitimleri

Injection Principles & Applying SOLID Principles Eğitimi

3 günOrtaOnline / Yüz Yüze / Hibrit

Dependency Injection ve SOLID eğitimi: IoC konteynerleri, constructor injection, Composition Root, SRP/OCP/LSP/ISP/DIP ve test edilebilir tasarım, 3 gün.

Detayları Gör →
Yazılım Mimarisi ve Tasarım DesenleriIntroduction to Domain-driven Design Eğitimi
Yazılım Geliştirme Eğitimleri

Introduction to Domain-driven Design Eğitimi

3 günTemelOnline / Yüz Yüze / Hibrit

Introduction to Domain-Driven Design eğitimi: ortak dil, Event Storming, Bounded Context, aggregate ve CQRS temelleri. Uygulamalı 3 gün.

Detayları Gör →
Yazılım Mimarisi ve Tasarım DesenleriKurumsal Yazılım Mimarisi Eğitimi
Yazılım Geliştirme Eğitimleri

Kurumsal Yazılım Mimarisi Eğitimi

4 günİleriOnline / Yüz Yüze / Hibrit

Kurumsal Yazılım Mimarisi eğitimi: katmanlı mimari, PoEAA, DDD sınırları, mikroservis, entegrasyon, dayanıklılık, ADR ve C4, 4 gün uygulamalı.

Detayları Gör →
Yazılım Mimarisi ve Tasarım DesenleriNesne Tabanlı Analiz ve Tasarım UML Dili Kullanarak Eğitimi
Yazılım Geliştirme Eğitimleri

Nesne Tabanlı Analiz ve Tasarım UML Dili Kullanarak Eğitimi

4 günOrtaOnline / Yüz Yüze / Hibrit

UML ile nesne tabanlı analiz ve tasarım eğitimi: use case, domain model, GRASP, sıra/durum diyagramları, SOLID ve temel desenler, 4 gün uygulamalı.

Detayları Gör →
+90 (501) 369 40 14 WhatsApp [email protected] LinkedIn