Комментарии 7
Кроме того, вы не можете сказать, что DDD находится в идеальном состоянии и не имеет причин для изменений. К сожалению, низкие показатели его внедрения говорят сами за себя.
Во первых, почему не могу?
Во вторых, 90% компаний надо только «чтобы работало» - разумеется, что в такой ситуации программисты идут по пути наименьшего сопротивления и делают «тяп-ляп и в продакшен».
Уж авто-тесты то далеко не везде есть, что уж говорить о DDD.
Ограниченные контексты, сущности, события домена, объекты значений, домены, агрегаты, репозитории… с чего начать?
На мой взгляд, чтобы проверить качество DDD, нужно попробовать перенести бизнесовый функционал на другой фреймворк, на другую базу (например с PostgreSQL на MongoDB или обратно) - если сделать это легко - значит спроектировано хорошо. Соответственно, ограниченный контекст - это ключевое.
А это:
Как вы думаете, какую из них будет легче понять и объяснить?
Ни о чем. Регулярные споры о DDD в телеграм-каналах показывают, что у каждого свое понятие об удобном и понятном. Если в компании выделяется время на ревью кода, если никто не встает в позу «я умный, а вы ничего не шарите» - то уже хорошо.
Ну и не забываем про «лучшее враг хорошего»
Спасибо за статью, стимулирующую дальнейшие размышления.
Я не в коем случае не хочу как-то обесценить труд автора и допускаю, что это только моя проблема, но я вообще не понимаю статей про DDD без конкретных примеров. А это примерно все статьи о DDD, что я видел на Хабре. Все они обмазывают тематику толстыми слоями терминов без толики объяснений практической пользы от введения каждого из них. То есть статьи не рассказывают "зачем", а рассказывают "как этим пользоваться".
К примеру в этой статье вводится понятие Единый язык, но что вообще такое конкретно? Это статья в базе знаний со списком терминов, которые должны использовать все от аналитика до тестировщика? Много слов вокруг термина, но ноль слов про суть.
Есть ли какой-то емкий гайд, туториал, что угодно про DDD с конкретным примером?
Есть бесплатная книжка с примерами, по ощущениям много про DDD
Спасибо Падла и Аркадий. Посмотрю. Хорошо бы, правда, суть вещей в статьях раскрывать, а не кидаться книжками )
Автор переведенной статьи в принципе как раз и пытался размышлять над тем, как упростить новичкам вход в DDD.
Предложение по сути сводится к тому, чтобы убрать из повествования всех этих пугающе объемных книжек ненужные частности и примеры (tactical patterns), оставив лишь максимально абстрактные вещи, специфичные для DDD как философии проектирования программного обеспечения.
Философия на то и философия, что обобщает различную конкретику: принципы, подходы, методологии, практики - в единую систему. Но с повышением уровня абстракции в пределе получается этакий "квадрат Малевича", который невозможно прочитать, если не знать всей предыстории на достаточном уровне.
Поэтому похоже, что в таком упрощённом виде воспринимать DDD становится ещё сложнее. Здесь наверное тот случай когда клипы и курсы не заменяют фундаментального образования.
Всегда была мысль создать открытый репозиторий с примерами, чтобы все кто в теме могли добавлять свои примеры, но всё лень.
Преодоление сложности в самом сердце DDD