Как стать автором
Обновить

Преодоление сложности в самом сердце DDD

Время на прочтение6 мин
Количество просмотров19K
Всего голосов 25: ↑25 и ↓0+25
Комментарии7

Комментарии 7

Кроме того, вы не можете сказать, что DDD находится в идеальном состоянии и не имеет причин для изменений. К сожалению, низкие показатели его внедрения говорят сами за себя.

Во первых, почему не могу?

Во вторых, 90% компаний надо только «чтобы работало» - разумеется, что в такой ситуации программисты идут по пути наименьшего сопротивления и делают «тяп-ляп и в продакшен».

Уж авто-тесты то далеко не везде есть, что уж говорить о DDD.

Ограниченные контексты, сущности, события домена, объекты значений, домены, агрегаты, репозитории… с чего начать?

На мой взгляд, чтобы проверить качество DDD, нужно попробовать перенести бизнесовый функционал на другой фреймворк, на другую базу (например с PostgreSQL на MongoDB или обратно) - если сделать это легко - значит спроектировано хорошо. Соответственно, ограниченный контекст - это ключевое.

А это:

Как вы думаете, какую из них будет легче понять и объяснить?

Ни о чем. Регулярные споры о DDD в телеграм-каналах показывают, что у каждого свое понятие об удобном и понятном. Если в компании выделяется время на ревью кода, если никто не встает в позу «я умный, а вы ничего не шарите» - то уже хорошо.

Ну и не забываем про «лучшее враг хорошего»

Спасибо за статью, стимулирующую дальнейшие размышления.

Я не в коем случае не хочу как-то обесценить труд автора и допускаю, что это только моя проблема, но я вообще не понимаю статей про DDD без конкретных примеров. А это примерно все статьи о DDD, что я видел на Хабре. Все они обмазывают тематику толстыми слоями терминов без толики объяснений практической пользы от введения каждого из них. То есть статьи не рассказывают "зачем", а рассказывают "как этим пользоваться".

К примеру в этой статье вводится понятие Единый язык, но что вообще такое конкретно? Это статья в базе знаний со списком терминов, которые должны использовать все от аналитика до тестировщика? Много слов вокруг термина, но ноль слов про суть.

Есть ли какой-то емкий гайд, туториал, что угодно про DDD с конкретным примером?

Спасибо Падла и Аркадий. Посмотрю. Хорошо бы, правда, суть вещей в статьях раскрывать, а не кидаться книжками )

Автор переведенной статьи в принципе как раз и пытался размышлять над тем, как упростить новичкам вход в DDD.

Предложение по сути сводится к тому, чтобы убрать из повествования всех этих пугающе объемных книжек ненужные частности и примеры (tactical patterns), оставив лишь максимально абстрактные вещи, специфичные для DDD как философии проектирования программного обеспечения.

Философия на то и философия, что обобщает различную конкретику: принципы, подходы, методологии, практики - в единую систему. Но с повышением уровня абстракции в пределе получается этакий "квадрат Малевича", который невозможно прочитать, если не знать всей предыстории на достаточном уровне.

Поэтому похоже, что в таком упрощённом виде воспринимать DDD становится ещё сложнее. Здесь наверное тот случай когда клипы и курсы не заменяют фундаментального образования.

Всегда была мысль создать открытый репозиторий с примерами, чтобы все кто в теме могли добавлять свои примеры, но всё лень.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории