Di mana saya menemukan beberapa contoh bagus untuk DDD? [Tutup]

390

Saya sedang belajar tentang Desain Berbasis Domain, namun ada beberapa masalah praktis yang membingungkan bagi saya sehingga saya pikir melihat beberapa sampel yang baik mungkin akan beres.

Apakah ada yang tahu tentang beberapa contoh kode kerja yang baik yang melakukan pemodelan konsep DDD dasar dengan baik?

Khususnya tertarik

  • Model Domain ilustratif
  • Repositori
  • Penggunaan Layanan Domain / Aplikasi
  • Nilai Objek
  • Akar Agregat
jlembke
sumber
42
Perdebatan IHMO akan sangat membantu. Terkadang lebih dari sekadar pertanyaan sederhana. Misalnya kita dapat mengubah ini dalam sebuah pertanyaan: "Di mana saya menemukan beberapa contoh yang baik untuk DDD?" dan itu bekerja dengan format T&J.
Gizzmo
1
Saya telah menemukan contoh "proyek manajemen tangkas" dari buku Vaughn Vernon yang sangat instruktif. itu menggambarkan implementasi praktis dari blok bangunan yang Anda sebutkan, serta berurusan dengan konteks terikat yang berbeda, Anda dapat menemukan kode di sini: github.com/VaughnVernon/IDDD_Samples
Mehdi.
1
Saya akan merekomendasikan contoh ini: github.com/vkhorikov/DddInAction
Vladimir
1
Anda dapat melihatnya di sini: dzone.com/storage/assets/…
Chaklader Asfak Arefe
Dapatkan satu di sini: github.com/appie2go/steal-this-code
Clark Kent

Jawaban:

199

Kesulitan dengan sampel DDD adalah bahwa mereka sering sangat spesifik domain dan implementasi teknis dari sistem yang dihasilkan tidak selalu menunjukkan keputusan desain dan transisi yang dibuat dalam pemodelan domain, yang sebenarnya merupakan inti dari DDD. DDD jauh lebih banyak tentang proses daripada kode. (seperti beberapa orang mengatakan, sampel DDD terbaik adalah buku itu sendiri!)

Oleh karena itu, aplikasi sampel yang dikomentari dengan baik setidaknya harus mengungkapkan beberapa keputusan ini dan memberi Anda arahan dalam hal mencocokkan model domain Anda dengan pola teknis yang digunakan untuk mengimplementasikannya.

Anda belum menentukan bahasa yang Anda gunakan, tetapi saya akan memberi Anda beberapa bahasa yang berbeda:

DDDSample - sampel Java yang mencerminkan contoh yang dibicarakan Eric Evans dalam bukunya . Ini dikomentari dengan baik dan menunjukkan sejumlah metode berbeda untuk menyelesaikan berbagai masalah dengan konteks terbatas yang terpisah (yaitu, lapisan presentasi). Sedang aktif bekerja, jadi periksa secara teratur untuk pembaruan.

dddps - Contoh aplikasi C # Tim McCarthy untuk bukunya, .NET-Driven Design Domain dengan C #

Arsitektur S # arp - contoh C # pragmatis, bukan sebagai "murni" pendekatan DDD mungkin karena kurangnya masalah domain nyata, tetapi masih merupakan pendekatan bersih yang bagus.

Dengan semua aplikasi sampel ini, mungkin yang terbaik untuk memeriksa versi trunk terbaru dari SVN / apa pun untuk benar-benar mendapatkan gagasan tentang pola pemikiran dan teknologi karena harus diperbarui secara berkala.

Michael Hart
sumber
2
Seperti yang disebutkan oleh @Mehdi dalam komentar pertanyaan asli Anda harus menambahkan contoh yang bagus dari Vaughn Vernon. Ini adalah implementasi terbaik dari pola DDD sejauh ini yang pernah saya lihat: github.com/VaughnVernon/IDDD_Samples
Sylvain Lecoy
Saya tahu ini sudah tua, tetapi contoh dari dddpstampaknya sepenuhnya anemia dan berlawanan dengan OOP sebenarnya. Tidak ada objek domain yang memiliki perilaku apa pun, dan kelas lapisan layanan pada dasarnya adalah delegasi 1: 1 ke repositori. Saya tidak yakin apakah ini harus dianggap sebagai contoh "baik" dari DDD? Saya masih belajar sendiri, tetapi sampel dalam Arsitektur S # arp tampaknya menjadi contoh yang lebih baik bagi mereka yang belajar DDD karena mencakup kondisi dan perilaku, yang merupakan desain OOP yang baik.
David Anderson
Anda sekarang harus menambahkan sampel yang sangat baik dari Vaugnh Vernon penulis Implementing Domain Driven Design (IDDD): github.com/VaughnVernon/IDDD_Samples
Sylvain Lecoy
23

Bukan proyek sumber per kata tapi saya menemukan Parleys.com yang memiliki beberapa video bagus yang mencakup DDD dengan cukup baik (membutuhkan flash):

Saya menemukan ini jauh lebih bermanfaat daripada contoh-contoh DDD hampir tidak ada yang saat ini tersedia.

Todd Smith
sumber
tautan tidak berfungsi
sidgate
11

Lihat Sutra Proyek . Tidak hanya mendemonstrasikan DDD tetapi juga pola mutakhir lainnya. Ini adalah sumber yang bagus untuk Pengembang Web. Gambaran lengkap proyek dapat ditemukan di MSDN .

pengguna996985
sumber
Kode sumber tidak tersedia lagi :(
Dherik
7

Ini adalah contoh yang baik berdasarkan desain berbasis domain dan menjelaskan mengapa penting untuk memiliki lapisan domain yang terpisah.
Microsoft spain - DDD N Layer Architecture

Thurein
sumber
1
Saya tidak dapat memilih ini tetapi pergi ke blog Ayende untuk melihat mengapa menurutnya ini bukan contoh yang baik. ayende.com/blog/19457/…
Chris
1
tautan yang Anda berikan tidak berfungsi, kesalahan pesan: 'Project' microsoftnlayerapp 'tidak ditemukan'
Omar AMEZOUG