Etki Alanına Dayalı Tasarım Nedir? Tanımlarla yeni başlayanlar kılavuzu

In: Genel


Bu makale, alan odaklı tasarım, temel kavramlar, kelime bilgisi ve genel fikirler hakkındadır. SymfonyWorld 2020 konferansına katılırken bu makaleyi yazmak için motive oldum. Neal Brooks, “Symfony ile Etki Alanına Dayalı Tasarım için mutlak başlangıç ​​kılavuzu” adlı ilham verici bir konferans verdi.

Bu makaleye hızlı bir genel bakış elde etmek ve ilgilendiğiniz bir bölüme kolayca gitmek için İçindekiler’i kullanabilirsiniz.

Etki Alanına Dayalı Tasarım Nedir?

İlk olarak, ne olduğunu sorduğumuzda Etki Alanına Dayalı Tasarım aslında Etki Alanına Dayalı tasarım kavramını anlamak istiyoruz. Bir problemi anlamaya, tasarlamaya ve sonunda kodlamaya yönelik bir yaklaşımdır. Daha iyi, daha test edilebilir ve sürdürülebilir kod ile sonuçlanır.

İkinci olarak, etki alanına dayalı tasarımın ne olduğunu anlamak, tüm ekibinizle farklı bir düzeyde iletişim kurmanıza yardımcı olacaktır. Bu gelişmiş iletişim sayesinde daha iyi bir geliştirici, lider veya kilit paydaş olacaksınız.

Son olarak, bunun tek olası yaklaşım olmadığını ve gerçeğin tek kaynağı olmadığını anlamak önemlidir. Ancak, bilmiyorsanız, diğerleriyle karşılaştıramazsınız.

Tanımlar

Alan odaklı tasarımı anlamak istiyorsak, tanımları ve kelime dağarcığını anlamak önemlidir.

Etki Alanına Dayalı Tasarım

Etki Alanına Dayalı Tasarım yazılımda temsil etmek için işi anlamaya yönelik bir yaklaşım ve aynı zamanda işi basitleştirmek için bir mimari modeldir.

Etki Alanına Dayalı Tasarımla ilgileniyorsanız, bu konuda çok sayıda iyi kitap var. benim önerim olurdu Etki Alanına Dayalı Tasarım: Yazılımın Kalbinde Karmaşıklıkla Mücadele

ya da daha pratik bir şey Etki Alanına Dayalı Tasarımın Uygulanması

Alan adı

Alan adı için yazılım ürettiğimiz bir şirkettir. Müşterilerimizin yaptığı şey bu. İstediğimiz ve anlamamız gereken şey bu.

Alan uzmanları

Alan uzmanları yazılımımızı kullanacak ve bu alanda deneyim sahibi kişilerdir. Onlar ilgili deneyime sahip insanlardır. Bu deneyim, yazılım geliştiriciler için önemlidir çünkü muhtemelen buna sahip olmayacaklardır.

Öncelikle unutmayın, yazılım yapmak kod yazmak değildir. Bazı işlerin yapılmasına yardımcı olacak araçlar oluşturmakla ilgilidir. Çünkü birinin ne tür bir iş yaptığını bilmezsek iyi bir alet yapamayız.

Her Yerde Bulunan Dil

Her Yerde Bulunan Dil insanların belirli bir grupta nasıl iletişim kurduğudur. İnsanlar bu alanda dili böyle kullanır. Tutarlı tutmak için yazılım oluştururken bu kelimeyi kullanmak istiyoruz.

Örneğin, başka bir takım ‘Müşteri’ derken biz ‘Kullanıcı’ diyebiliriz. Ayrıca, ekibin bir kısmı ‘Mülkiyet’ terimini kullanırken şirketin diğer kısımları aynı şey için ‘Talimat’ diyebilir.

Sınırlı Bağlamlar

Sınırlı Bağlamlar farklı bağlamlar biçiminde farklı anlamlardır. İşletme içindeki bazı davranışların etrafındaki mantıklı bir sınırdır.

Tasarım Varlıkları

A DDD Varlık (DDDE) diğer özdeş nesnelerden benzersiz olarak bir tür kimlik oluşturmaya sahip bir sınıftır.

Toplama

Toplama etki alanındaki bir kavramı temsil eden nesneler topluluğudur. Örneğin, bir araba birçok farklı nesnenin (tasarım, motor, satış değeri vb.) toplamıdır.

Toplam kök

toplu kök belirli topluluğa giriş noktasıdır.

değişmez

değişmezler etki alanının uyguladığı iş kurallarıdır. Uygulama düzeyindeki kurallardan ayrıdırlar.

Etki Alanı Hizmetleri

Etki alanı hizmetleri uygulama hizmetleri yokken etki alanı mantığını tutun.

Uygulama Hizmetleri

Uygulama hizmetleri etki alanı mantığının yürütülmesini dış dünya girdisine göre düzenler, ancak herhangi bir etki alanı mantığı içermez.

DDD mimarisinin dört katmanı vardır: etki alanı/model; altyapı (kod, sınıflar); application (uygulama hizmetleri) ve UI (yalnızca uygulama katmanıyla konuşur ve etki alanı veya altyapı hakkında bilgi sahibi değildir).

Özet

İlk olarak, farklı kuralları ve gizli gereksinimleri keşfetmek için alan uzmanlarıyla çalışmak önemlidir. İkinci olarak, ekipler ve iş arasındaki kelimeleri ve iletişimi düşünün. Ayrıca, mümkünse, sınırlı bağlamları mümkün olduğunca erken tanımlayın.

Son olarak, tüm paydaşlarla iş süreçleri ve değişmez hakkında konuşmaya başlayın. Ancak, bir şeyleri yapmanın “doğru yolu” olmadığını anlayın. Etki alanına dayalı tasarım, sorunu anlamak ve bu anlayışı sarsıntı ve makul kararlar vermek için kullanmakla ilgilidir.

Tam kod örneği GitHub’da mevcuttur https://github.com/nealio82/absolute-beginners-guide-to-ddd-with-symfony

Not: Sunum sırasında bir tartışma yaşandı. Yorumlara dayanarak tartışmanın çoğu şu yönlerdeydi: “DDD çok mu soyut”, “çok fazla sınıf mı yoksa önemli mi”, “performans endişeleri var mı”, “DDD nasıl düzgün bir şekilde belgelenir”.

Bir cevap yazın

Ready to Grow Your Business?

We Serve our Clients’ Best Interests with the Best Marketing Solutions. Find out More

How Can We Help You?

Need to bounce off ideas for an upcoming project or digital campaign? Looking to transform your business with the implementation of full potential digital marketing?

For any career inquiries, please visit our careers page here.
[contact-form-7 404 "Bulunamadı"]