Value Object: как победить примитивную одержимость без DDD

Кажется, что оборачивать BigDecimal и String в отдельные классы — это overengineering и преждевременный DDD. Но именно из-за этих «лишних» типов в прод не пролезают посылки в ПВЗ, проценты внезапно превращаются из 0.8 в 80, а деньги теряют валюту и смысл. В статье на реальном примере логистики разбираем, как один небольшой record Weight и несколько аккуратных Value Object’ов наводят порядок в бизнес-логике: инварианты перестают жить в комментариях, проверки перестают дублироваться, а код начинает читаться как текст предметной области. Без внедрения полного DDD, без религиозного фанатизма — только практические шаги. Как избавиться от одержимости примитивами

https://habr.com/ru/companies/cdek_blog/articles/975426/?utm_source=habrahabr&utm_medium=rss&utm_campaign=975426

#java #value_object #ddd #kotlin #backend

Value Object: как победить примитивную одержимость без DDD

Это статья является адаптацией моего выступления на конференции UfaDevConf 2025. Представьте, что вы работаете в логистике. У вас десяток интеграций: маркетплейсы, партнёры, внутренние сервисы. Каждый...

Хабр

Value Object: как победить примитивную одержимость без DDD

Кажется, что оборачивать BigDecimal и String в отдельные классы — это overengineering и преждевременный DDD. Но именно из-за этих «лишних» типов в прод не пролезают посылки в ПВЗ, проценты внезапно превращаются из 0.8 в 80, а деньги теряют валюту и смысл. В статье на реальном примере логистики разбираем, как один небольшой record Weight и несколько аккуратных Value Object’ов наводят порядок в бизнес-логике: инварианты перестают жить в комментариях, проверки перестают дублироваться, а код начинает читаться как текст предметной области. Без внедрения полного DDD, без религиозного фанатизма — только практические шаги. Как избавиться от одержимости примитивами

https://habr.com/ru/companies/cdek_blog/articles/975426/

#java #value_object #ddd #kotlin #backend

Value Object: как победить примитивную одержимость без DDD

Это статья является адаптацией моего выступления на конференции UfaDevConf 2025. Представьте, что вы работаете в логистике. У вас десяток интеграций: маркетплейсы, партнёры, внутренние сервисы. Каждый...

Хабр

Value object и DTO в PHP (DDD)

В чем разница и когда что использовать? Это был один из вопросов, на которые я пытался получить ответ. Попытаюсь тут описать ту практику, которую считаю не плохой. С примерами на PHP . Постараюсь описывать на простом языке - без использования сложной терминологии . Лучше всего это два подхода понимаются в слоистой архитектуре(слой презентации , доменный , инфраструктура , приложение - те, которые на текущий момент я использую в итоговом примере).

https://habr.com/ru/articles/916590/

#ddd #solid #clean_architecture #php #value_object #dto

Value object и DTO в PHP (DDD)

В чем разница и когда что использовать? Это был один из вопросов, на которые я пытался получить ответ. Попытаюсь тут описать ту практику, которую считаю не плохой. С примерами на PHP . Постараюсь...

Хабр

Как защитить бизнес-логику от мутаций в DTO: коротко

Привет, Хабр! Сегодня рассмотрим как обезопасить бизнес-логику от случайного (или злонамеренного) изменения DTO, чем опасна мутабельность моделей и какие инструменты дают C#, Java, Python и Go, чтобы вы больше никогда не ловили эти баги.

https://habr.com/ru/companies/otus/articles/914418/

#teamlead #DTO #Безопасность_бизнеслогики #Value_Object #Иммутабельность_DTO #антимутабельность_моделей #ошибки_авторизации

Как защитить бизнес-логику от мутаций в DTO: коротко

Привет, Хабр! Сегодня рассмотрим как обезопасить бизнес-логику от случайного (или злонамеренного) изменения DTO, чем опасна мутабельность моделей и какие инструменты дают C#, Java, Python и Go, чтобы...

Хабр