Відповіді:
По-перше, якщо ви не знаєте, що вам це потрібно, можливо, він вам не потрібен. Якщо ви не розпізнаєте проблеми, які вирішує DDD, можливо, у вас немає цих проблем. Навіть прихильники DDD часто зазначають, що DDD призначений лише для великих (> 6 місяців) проектів.
Якщо припустити, що ви все ще читаєте на даний момент, я захоплююсь DDD таким:
DDD збирається зробити ваше програмне забезпечення моделлю реальної системи або процесу. Використовуючи DDD, ви повинні тісно співпрацювати з експертом з домену, який може пояснити, як працює система реального світу. Наприклад, якщо ви розробляєте систему, яка займається розміщенням ставок на скачки, ваш доменний експерт може бути досвідченим букмекером.
Між собою та експертом з домену ви будуєте всюдисущу мову (UL), яка в основному є концептуальним описом системи. Ідея полягає в тому, що ви повинні мати можливість записати, що робить система таким чином, щоб доменний експерт міг її прочитати і перевірити, чи правильно вона. У нашому прикладі ставок всюдисуща мова включатиме визначення слів, таких як "гонка", "ставка", "шанси" тощо.
Концепції, описані UL, ляжуть в основу вашого об'єктно-орієнтованого дизайну. DDD надає чіткі вказівки щодо того, як ваші об’єкти повинні взаємодіяти, і допомагає розділити об'єкти на наступні категорії:
DDD також рекомендує кілька моделей:
Тепер, на даний момент, я повинен сказати, що якщо ви ще не чули ні про що з цього, ви не повинні намагатися використовувати DDD в будь-якому проекті, на який у вас є термін. Перш ніж спробувати DDD, ви повинні ознайомитись із моделями дизайну та моделями дизайну підприємства . Знаючи це, DDD набагато простіше зрозуміти. І, як згадувалося вище, доступне безкоштовне введення в DDD, доступне в InfoQ (де ви також можете знайти розмови про DDD).
Візьміть StackOverflow як приклад. Замість того, щоб починати розробляти деякі веб-форми, ви спершу зосереджуєтесь на тому, щоб робити об’єктно-орієнтоване моделювання об'єктів у межах вашої проблемної області, наприклад користувачів, запитань, відповідей, голосів, коментарів тощо. Оскільки дизайн визначається деталями проблеми Домен називається дизайном, керованим доменом .
Більше ви можете прочитати в книзі Еріка Еванса .