Полный текст

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