INTRODUCTION TO DOMAIN-DRIVEN DESIGN EĞİTİMİ

İş alanını yazılıma doğru taşımayı öğrenin

Ortak dil, Event Storming, Bounded Context, aggregate ve CQRS ile DDD'nin temel taşlarını öğrenin.

Eğitim, DDD'yi hiç uygulamamış ekipler için başlangıç noktasıdır. Domain, subdomain, ubiquitous language ve core domain kavramlarını öğrenir, Event Storming ile iş akışını duvara taşırsınız.

3 gün Temel Seviye Online / Yüz Yüze / Hibrit Sertifikalı

Eğitim Hakkında

Üç günde DDD'nin stratejik ve taktik temelleri

Eğitim, DDD'yi hiç uygulamamış ekipler için başlangıç noktasıdır. Domain, subdomain, ubiquitous language ve core domain kavramlarını öğrenir, Event Storming ile iş akışını duvara taşırsınız. Entity, Value Object ve Aggregate'i kodlar, Bounded Context sınırlarını çizer, domain event ve CQRS'in temel mantığını görürsünüz. Repository ve veri erişim desenleriyle modelin kalıcılığını kurar, mimari kararları ADR ile kaydedersiniz.

Süre ve Format

3 Gün. Her gün dört modül; sabah kavram anlatımı, öğleden sonra Event Storming ve kodlama atölyesi.

Seviye

Temel Seviye — DDD'ye giriş: ortak dil, Event Storming, aggregate, Bounded Context ve CQRS temelleri.

Öğrenme Metodu

Katılımcılar bir sigorta başvuru süreci üzerinde Event Storming yapar, çıkan modeli küçük bir Java veya C# projesinde aggregate ve repository olarak kodlar.

Neden Bu Eğitim?

🗣️Ortak Dil

İş birimi ile yazılım ekibi arasındaki iletişim kopukluğunu ortak dille azaltırsınız.

🎯Doğru Yere Odak

Core domain'i ayırarak yatırım yapılacak alanı bilinçli seçersiniz.

🧱Sağlam Model

Aggregate ve Value Object ile iş kurallarını modelin içinde korursunuz.

Anahtar Konular

domain driven design girişDDD eğitimievent stormingbounded contextaggregateubiquitous languageCQRS temelDDD başlangıç
“Yazılım, iş alanını anladığımız kadar iyidir.”

Ön Koşullar

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

1
Yazılım Bilgisi

Temel OOP ve veritabanı bilgisi.

2
İş Alanı İlgisi

Kendi iş alanınızdan bir süreç örneği düşünerek gelmeniz faydalıdır.

3
Java veya C# Okuma

Kod örneklerini okuyabilecek düzeyde bir dil bilgisi.

4
Not Alma Araçları

Atölyede kullanılacak Miro veya fiziksel yapışkan not katılımı.

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ı ortak dil oluşturur, UML sınıf diyagramıyla modeli taslaklar ve OO tasarım ilkelerini DDD ile ilişkilendirir.
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
Sınıf Diyagramı
  • Sınıf, öznitelik, işlem ve görünürlük gösterimi
  • Association, aggregation, composition ve dependency farkları
  • Çokluk (multiplicity), rol adı ve yönlülük
  • Generalization, realization, abstract sınıf ve interface
  • Association class ve türetilmiş öznitelikler
  • Diyagramdan Java/C# koduna eşleme ve tersine mühendislik
Modül 4
OOP Tasarım Temelleri
  • Yüksek uyum (cohesion) ve düşük bağlaşım (coupling)
  • Law of Demeter ve 'Tell, Don't Ask' ilkesi
  • Sözleşmeyle tasarım: ön koşul, son koşul, değişmez
  • Değişmezlik ve yan etkisiz metotlar
  • Küçük arayüz, açık niyet: adlandırma ve API tasarımı
  • Basit sınıf diyagramı ile tasarımı iletme
Günün hedefiKatılımcı Bounded Context sınırlarını çizer, aggregate tasarlar, CQRS'i tanır ve repository ile kalıcılığı kurar.
Modül 1
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 2
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
Modül 3
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 4
Veri Erişim Desenleri
  • Table Data Gateway ve Row Data Gateway farkları
  • Active Record: nesne içinde kalıcılık ve sınırları
  • Data Mapper: domain nesnesini veritabanından bağımsızlaştırma
  • Repository ve Specification ile sorgu soyutlaması
  • Query Object ile dinamik sorgu oluşturma
  • Lazy Load, Identity Map ve Virtual Proxy ilişkisi
Günün hedefiKatılımcı domain event tasarlar, aggregate testlerini yazar, kararlarını ADR ile belgeler ve mimari yaklaşımları karşılaştırır.
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
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
Modül 3
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 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.

🔧
Sınıf Modelleme

Alan nesnelerini ilişki türleri ve çokluklarıyla doğru bir sınıf diyagramına dökebilirsiniz.

🧠
OO Tasarım Sezgisi

Uyum ve bağlaşım ölçütleriyle sınıf tasarımınızı değerlendirip iyileştirebilirsiniz.

📐
Aggregate Tasarımı

Entity, Value Object ve Aggregate sınırlarını invariants'a göre doğru çizebilirsiniz.

🧩
CQRS Mimarisi

CQRS ve hexagonal mimariyi domain katmanını koruyacak biçimde kurgulayabilirsiniz.

🛡️
Olay Odaklı Model

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

📊
Test Edilebilirlik

Bağımlılıkları soyutlayarak testi kolay, kırılgan olmayan tasarımlar kurabilirsiniz.

🚀
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 ile tanışmak isteyen geliştiriciler
  • analistler
  • ürün sahipleri
  • teknik liderler

Sıkça Sorulan Sorular

Bu eğitim kimler için uygundur?
DDD ile tanışmak isteyen geliştiriciler, analistler, ürün sahipleri ve teknik liderler.
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 3 gündür; katılımcılar bir sigorta başvuru süreci üzerinde Event Storming yapar, çıkan modeli küçük bir Java veya C# projesinde aggregate ve repository olarak kodlar.
DDD ne zaman gereksizdir?
Basit CRUD ve veri odaklı uygulamalarda DDD gereksiz karmaşıklık getirebilir; eğitim bu sınırı örneklerle gösterir.
Event Storming için özel araç gerekir mi?
Hayır; yapışkan notlar veya Miro gibi bir tahta yeterlidir.

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. Introduction to Domain-driven Design Eğitimi Sertifika Kodu DV-2026XX00 Tarih 27.10.2026 Yetkili İmza DV AKADEMİ

Eğitim Bilgileri

Süre3 gün
SeviyeTemel 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 DesenleriClean Coding Techniques: Introduction to SOLID Eğitimi
Yazılım Geliştirme Eğitimleri

Clean Coding Techniques: Introduction to SOLID Eğitimi

2 günBaşlangıçOnline / Yüz Yüze / Hibrit

SOLID'e giriş eğitimi: SRP, OCP, LSP, ISP, DIP ilkelerini sorunlu koddan refactor edilmiş koda, constructor injection ve mini proje ile öğreten uygulamalı 2 gün

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

Components of Domain-driven Design Eğitimi

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

DDD bileşenleri eğitimi: ubiquitous language, Event Storming, bounded context, aggregate, value object, domain event, CQRS ve eski sistem dönüşümü ile uygulamal

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

Design Patterns Eğitimi

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

Design Patterns eğitimi: GoF yaratımsal, yapısal, davranışsal desenler, SOLID, DI ve refactoring ile desene geçiş. Java/C# ile uygulamalı 3 gün.

Detayları Gör →
Yazılım Mimarisi ve Tasarım DesenleriDomain-Driven Design: Kavramlar ve Uzman Geliştiriciler için Pratikler Eğitimi
Yazılım Geliştirme Eğitimleri

Domain-Driven Design: Kavramlar ve Uzman Geliştiriciler için Pratikler Eğitimi

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

Domain-Driven Design eğitimi: Bounded Context, aggregate, event sourcing, CQRS, Event Storming ve legacy dönüşümü. Uzman geliştiriciler için 4 gün.

Detayları Gör →
Yazılım Mimarisi ve Tasarım DesenleriEnterprise Design Patterns & Architectures Eğitimi
Yazılım Geliştirme Eğitimleri

Enterprise Design Patterns & Architectures Eğitimi

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

Enterprise Design Patterns eğitimi: PoEAA, Domain Model, Data Mapper, Unit of Work, lock stratejileri, entegrasyon desenleri ve mikroservis mimarisi, 4 gün.

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