Де я можу знайти хороші приклади DDD? [зачинено]


390

Я дізнаюся про дизайн, керований доменом, проте є деякі практичні проблеми, які мене бентежать, я думаю, що побачити якісь хороші зразки може прояснитися.

Хтось знає про якісь хороші зразки робочого коду, які добре допомагають моделювати основні поняття DDD?

Особливо цікавить

  • Ілюстративна модель домену
  • Сховища
  • Використання служб доменів / прикладних програм
  • Ціннісні об'єкти
  • Зведені коріння

42
IHMO такі дебати дуже допоможуть. Іноді більше, ніж просте запитання. Наприклад, ми могли б змінити це у запитанні: "Де я можу знайти кілька хороших прикладів для DDD?" і він працює у форматі запитань.
Gizzmo

1
Я знайшов приклад "спритного проекту управління" з книги Вона Вернона дуже повчальним. це ілюструє практичну реалізацію перерахованих вами будівельних блоків, а також стосуючись
Mehdi.

1
Я б рекомендував цей приклад: github.com/vkhorikov/DddInAction
Володимир

1
Ви можете подивитися тут: dzone.com/storage/assets/…
Chaklader Asfak Arefe

Відповіді:


199

Складність із зразками DDD полягає в тому, що вони часто дуже специфічні для домену, а технічна реалізація отриманої системи не завжди відображає дизайнерські рішення та переходи, які були зроблені при моделюванні домену, що насправді є основою DDD. DDD набагато більше про процес, ніж про код. (як деякі кажуть, найкращий зразок DDD - це сама книга!)

Однак, добре прокоментований зразок додатка повинен хоча б розкрити деякі з цих рішень і дати певний напрямок з точки зору відповідності вашої доменної моделі технічним зразкам, які використовуються для її реалізації.

Ви не вказали, якою мовою ви користуєтесь, але я дам вам декілька різними мовами:

DDDSample - зразок Java, який відображає приклади, про які розповідає Ерік Еванс у своїй книзі . Це добре прокоментується і показує ряд різних методів вирішення різних задач з окремими обмеженими контекстами (тобто шаром презентації). Над ним активно працюють, тому регулярно перевіряйте наявність оновлень.

dddps - зразок програми C # Тіма Маккарті для своєї книги, .NET Design, керований доменом, із C #

S # arp Архітектура - прагматичний приклад C #, не такий "чистий" підхід DDD, можливо, через відсутність реальної проблеми домену, але все-таки приємний чистий підхід.

З усіма цими прикладними програмами, мабуть, найкраще перевірити останні версії магістралі від SVN / що б там не було, щоб дійсно уявити про мислення та технологію, оскільки їх слід регулярно оновлювати.


2
Як згадувалося @Mehdi в першому коментарі до запитання, ви повинні додати чудовий приклад Вон Вернона. Це найкраща реалізація схеми DDD, яку я коли-небудь бачив: github.com/VaughnVernon/IDDD_Samples
Sylvain Lecoy

Я знаю, що це по-старому, але приклад з, dddpsздається, є абсолютно анемічним і насправді суперечить OOP. Жоден з об'єктів домену не має жодної поведінки, а класи службового рівня - це делегація 1: 1 до сховищ. Я не впевнений, чи слід це вважати "хорошим" прикладом DDD? Я все ще вчуся, але зразки архітектури S # arp здаються кращим прикладом для тих, хто навчається DDD, оскільки він охоплює як стан, так і поведінку, що є гарним дизайном OOP.
Девід Андерсон

Тепер вам слід додати чудовий зразок Ванона Вернона, автора проекту впровадження дизайну, керованого доменом (IDDD): github.com/VaughnVernon/IDDD_Samples
Сильвейн Лекой

23

Не першоджерельні проекти, але я натрапив на Parleys.com, який має кілька хороших відео, які досить добре висвітлюють DDD (вимагає спалаху):

Я знайшов це набагато корисніше, ніж майже неіснуючі приклади DDD, які є в даний час.


посилання не працюють
sidgate


11

Ознайомтеся з проектом Шовк . Він не лише демонструє DDD, але й інші передові моделі. Це відмінний ресурс для будь-якого веб-розробника. Повний огляд проекту можна знайти на MSDN .


Вихідний код більше недоступний :(
Dherik

7

Це хороший приклад, заснований на дизайні, керованому доменом, і пояснює, чому важливо мати окремий доменний шар.
Іспанія Microsoft - архітектура пластів DDD N


1
Я не можу це проголосувати, але перейдіть до блогу Айенде, щоб побачити, чому він вважає, що це не гарний приклад. ayende.com/blog/19457/…
Кріс

1
посилання, яке ви надаєте, не працює, помилка повідомлення: "Проекту" microsoftnlayerapp "не знайдено"
Омар AMEZOUG


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.