Перейти в канал

Tg: habr.com

1
int weight — это не вес: избавляемся от Primitive Obsession Логистические цепочки часто ломаются на стыке интеграций: партнёр прислал вес в граммах, складская система ждёт килограммы, а биллинг округлил BigDecimal не в ту сторону. Хранение сложных доменных понятий в примитивных типах создаёт иллюзию простоты, за которую приходится платить багами в продакшне. Принято считать, что лечение этой проблемы требует полного погружения в Domain-Driven Design. Это заблуждение. Использование Value Objects доступно и эффективно без построения агрегатов и сложных Bounded Contexts. Инкапсулируем правила валидации в строгие типы для защиты бизнес-логики.