• Buradasın

    Domain-Driven Design (DDD) Eğitim Videosu

    youtube.com/watch?v=D21vhXTL80o

    Yapay zekadan makale özeti

    • Bu video, bir konuşmacının Domain-Driven Design (DDD) yaklaşımını anlattığı kapsamlı bir eğitim içeriğidir.
    • Video, DDD'nin temel kavramlarını ve mimari yapısını sistematik bir şekilde ele almaktadır. İlk bölümde ubiquit language, bond context, entity, value object, aggregate, repository, service ve layer architecture gibi temel kavramlar açıklanırken, ikinci bölümde domain katmanının önemi, entity'lerin oluşturulması ve protect property'lerin kullanımı anlatılmaktadır. Son bölümde ise iş mantığı (ESAN) metodunun uygulama katmanında nasıl kullanılacağı ve katmanlı mimari yapısında infrastructure, presentation ve control katmanlarının işlevleri örneklerle gösterilmektedir.
    • Eğitim, GitHub'dan alınan örnekler üzerinden DDD'nin yazılım geliştirme ekibindeki paydaşlar arasında ortak iletişim kurma, kodun okunabilirliğini artırma ve karmaşıklığı minimize etme amaçlarını vurgulamaktadır. Ayrıca, dört katmanlı mimari yapısı (domain, application, infrastructure ve presentation) detaylı şekilde açıklanarak, her katmanın işlevleri ve aralarındaki ilişki gösterilmektedir.
    00:01Domain Driven Design Tanıtımı
    • Domain Driven Design (DDD), büyük ve karmaşık projelerde kodun okunabilirliğini ve karmaşasını azaltmak için Iris tarafından ortaya atılmış bir yazılım geliştirme yaklaşımıdır.
    • DDD'nin temel kavramları arasında Ubiquitous Language, Bounded Context, Entity, Value Object, Aggregate, Roles, Servis, Repository, Layer Architecture, Refactoring, Clean and Readable Code bulunmaktadır.
    01:14Ubiquitous Language
    • Ubiquitous Language, yazılım geliştirme ekibi ile domain expert arasında ortak bir iletişim ve dil oluşturmayı amaçlar.
    • Projede tüm paydaşlar (analist, oper, tester, backend, frontend) arasında aynı terimlerin kullanılması gerekir (örneğin "person", "staff", "employee" gibi).
    • Domain expert, domain içerisindeki kavramları en iyi bilen kişidir ve bu bilgileri yazılım geliştirme ekibine aktarmalıdır.
    03:08Ubiquitous Language İçin Kıstaslar
    • Yapılacak işlerin amaçları net ve belirgin olmalıdır.
    • Somut örnekler sunulmalıdır, her şeyin bir karşılığı olmalıdır.
    • Ayrıntılar vurgulanmalı ve uygulanmalıdır, böylece domain'e özellikler ve kurallar kazandırılabilir.
    04:33Bounded Context
    • Bounded Context, domain içindeki farklı komplekslerin sınırlarını ve kapsamlarını belirler.
    • Her kompleks kendi içinde tutarlı ve bütün olmalıdır, kendi dışındaki komplekslerle iletişim kurarken bu sınırlar göz önünde bulundurulmalıdır.
    • Kesişim noktaları en başta belirlenmelidir, örneğin sipariş ve müşteri kompleksleri arasındaki ilişki.
    06:59Entity ve Value Object
    • Entity, kimliğe sahip objelerdir ve genellikle veritabanı modellemesinde kullanılır.
    • Value Object, kimliğe sahip olmayan objelerdir ve DDD'de önemli bir rol oynar.
    • Entity ve Value Object arasındaki ilişkiler, örneğin sipariş ile ürün arasındaki ilişki gibi evlilik durumları oluşturabilir.
    08:58Servis ve Repository
    • Servis, iş kurallarını ve çıktıların yönetilmesini sağlar, doğrulama işlemlerini içerir.
    • Repository, veritabanında iletişimi için kullanılan bir pattern'dir.
    09:59Layer Architecture
    • DDD'de bir proje temelde dört katmanlı mimariden oluşmalıdır: Domain, Application, Infrastructure ve Presentation katmanları.
    • Bu katmanlar dışında herhangi bir katman eklenebilir, örneğin Postgres katmanı veya framework katmanı.
    10:51Domain Katmanı ve İyileştirme Yaklaşımı
    • Domain üzerinde yapılan işlemlerde, kendi işin dışında iyileştirilmesi gereken noktalar görüldüğünde müdahale edilmesi beklenir.
    • Bu yaklaşım, domain'in zamanla sürekli iyileştirilip geliştirilmesini sağlar.
    • Genellikle herkes kendi işini yapıp çıkmak düşüncesinde olurken, bu yaklaşım domain üzerinde görülen yanlışlıklarda müdahale etmeyi gerektirir.
    11:52Katman Yapısı
    • Domain yapısı beş katmandan oluşur: presentation katmanı, application domain katmanı ve repository katmanı.
    • Konuşmacı, repository katmanını soyutlamak için postoy katmanı eklemiş.
    • Domain katmanı üzerinden başlayarak, asıl hedef olan sunum katmanına geçilecek.
    13:02Entity ve Klasör Yapısı
    • Domain içerisinde iş ile ilgili birçok şey barındırılır ve iş ilişkili entity'ler klasör içerisinde barındırılır.
    • Entity'lerin tüm propertileri "protected" olarak tanımlanır, böylece dışarıdan manipülasyonlara karşı korunur.
    • Entity'ler okunabilir ve kendi içinde güvenlik sağlar.
    14:44İş Oluşturma İşlemi
    • İş oluşturmak için title, creator ve body parametreleri gereklidir.
    • Domain'in kendi kuralları barındırılır, örneğin title ve creator boş geçilemez.
    • İş oluşturulduktan sonra id değeri parametre değerlerinden seçilir.
    16:00İş İlişkisi ve Performans
    • İş bir konu ile ilişkilidir ve bir konu iş ilişkisi vardır.
    • Bir kullanıcı bir işi esan edebilmek için önce kullanıcı bilgisini çekmesi gerekir.
    • Performans tartışılabilir bir konu olsa da, bu yaklaşım güvenli ve okunabilir kod vaat eder.
    18:29Domain Servisleri
    • Domain servisleri, domain'in kendi kurallarını uygulamak için kullanılır.
    • Domain servisleri, domain'in kendi kurallarını uygulamak için kullanılır.
    • Domain servisleri, domain'in kendi kurallarını uygulamak için kullanılır.
    20:45İş Servisi Kullanımı
    • İş servisi, uygulamayı yönetmek için kullanılır ve tüm işlemler iş servisi üzerinden yürütülebilir.
    • İş servisi, enjeksiyonları yapmak için kullanılır ve geliştiriciler sadece iş servisini enjekte ederek çalışmaya devam edebilir.
    • İş servisi, farklı iş türleri için tek bir enjeksiyon imkanı sunarak tüm süreçleri yönetebilir hale getirir.
    22:06Domain ve Servis Kuralları
    • Servis katmanında kendi kuralları vardır ve domain kuralları ile karıştırılmamalıdır.
    • Eğer bir kural domaini ilgilendiriyorsa, domain içerisinde yer almalıdır.
    • Servis katmanında çek, otel, eklenebilir gibi işlemler yapılabilir ve bunlar genellikle dekoratörler aracılığıyla soyut hale getirilir.
    23:10İş Servisi ve Yorum Ekleme
    • İş servisinde command properti vardır ve yorum eklemek için iş servisi üzerinden gitmek gerekir.
    • Yorum ekleme işlemi için kullanıcı ID'si doğrudan istenir ve güvenlik kontrolü yapılır.
    • İş servisi, yorum ekleme işlemi için kendi kurallarını uygular ve yorum objesini kendi kendine validasyon eder.
    25:45Katmanlar ve Enjeksiyon
    • Infrastructure katmanı genellikle paketler, utilityler ve helplar içerir.
    • Presentation katmanı servis üzerinden çalışır ve hiçbir zaman doğrudan servis katmanına dönmez.
    • Enjeksiyon, hem servis katmanının presentation katmanına doğrudan dönmesini engeller hem de ekstra alanlar eklemeyi kolaylaştırır.

    Yanıtı değerlendir

  • Yazeka sinir ağı makaleleri veya videoları özetliyor