Domain Driven Design (DDD) Eğitimi

Eğitim Tipi : Sanal Sınıf / Online
Süre : 5 Gün
  1. Anasayfa
  2. Domain Driven Design (DDD) Eğitimi

Açıklama

    Herhangi bir yazılım topluluğunda veya ortamında DDD’nin ne olduğunu soracak olsaydık, çoğu kişi belki de tek bir cümleyle tanımlayabilirdi: “DDD, çözülmesi beklenen iş problemine odaklanarak yazılım geliştirmeye yönelik bir yaklaşımdır.” Aslında bu ifade doğrudur.

    Ancak DDD’nin, domain modelinizi doğru şekilde kurmanız için bir yaklaşım olduğunu da söyleyebiliriz. Bu eğitimde, kompleks problemlerin DDD yardımıyla nasıl tanımlandığı, doğru şekilde nasıl modellendiği ve oluşturulan domain modelinin koda nasıl aktarıldığı ele alınacaktır.

    DDD’nin yalnızca bir kod yazım tekniği olmadığı, aynı zamanda bir problem çözme framework’ü olduğu yaklaşımından hareketle framework’ün tüm aşamaları incelenecek; gerçek dünya probleminden yola çıkılarak modelleme yapılacak ve oluşturulan çözüm canlı kodlama çalışmalarıyla uygulamaya aktarılacaktır.


Eğitim İçeriği

DDD’ye Giriş (Introduction to DDD)

• DDD Nedir? (What’s DDD?)

• DDD’den Çekinmek (Scared of DDD)

• İyi, Kötü ve Etkili Tasarım (Good, Bad and Effective Design)

Domain Modelini Uygulamaya Geçirmek (Putting Domain Model to Work)

• Domain Modeling

• Problem Space & Solution Space

• Subdomains

• Core Domain

• Supporting Domain

• Generic Domain

• Ubiquitous Language

Stratejik Tasarım (Strategic Design)

• Bounded Context

• Context Mapping

• Bounded Context’ler Arasındaki İlişkiler (Relationship Between Bounded Contexts)

Event Storming

• Event Storming yaklaşımı

Taktiksel Tasarım (Tactical Design)

• Entities

• Value Objects

• Aggregates

• Domain Services

• Domain Events

• Factories

• Repositories

• Modules

Clean Architecture

• The Clean Architecture

Coding Workshop

• Gerçek dünya problemi üzerinden Domain modelleme

• Stratejik ve taktiksel DDD kavramlarının uygulanması

• Oluşturulan Domain modelinin koda aktarılması

• Canlı kodlama çalışması

Ön Koşullar

• Katılımcıların orta düzey programlama bilgisine sahip olması beklenmektedir.

• Yaygın olarak kullanılan bir yazılım dilini bilmek yeterlidir.

• Katılımcıların bilgisayarlarında Visual Studio (veya Rider), Docker ve C# 8.0 kurulu olması gerekmektedir.