Мне действительно нравится идея доменного дизайна, однако, изучая Go, мне интересно, есть ли эквивалент DDD, нацеленный на более эффективный язык?
Мне действительно нравится идея доменного дизайна, однако, изучая Go, мне интересно, есть ли эквивалент DDD, нацеленный на более эффективный язык?
Там нет эквивалента. DDD нужна была парадигма для поддержки частого переписывания в эволюционном сценарии разработки программного обеспечения. ООП выглядела тогда как единственная жизнеспособная стратегия. Но функциональные языки могут служить такому сценарию.
Возможно, вы захотите взглянуть на видео Грега Янга о DDD и функциональном программировании и видео Патрика Фредрикссона о внедрении DDD с помощью функционального языка, такого как Clojure.
Я полагаю, что DDD не о самом дизайне ООП, а больше о том, как вы подходите ко всему процессу разработки. Итеративная разработка, вездесущий язык, тесное сотрудничество бизнес-экспертов и разработчиков - все это зависит от языка и парадигмы.
Дизайн объектов в DDD не является чем-то новым. Модели, описанные в DDD, существовали задолго до того, как DDD увидели свет в мире. Совокупные корни, паттерны стратегии, ценностные объекты подходили только для описания бизнес-логики. Таким образом, ваш вопрос должен быть больше похож на «Как выразить бизнес-логику и сохранить ее состояние на функциональном языке». Вы, вероятно, ищете шаблоны проектирования для функциональных языков программирования.