Автор делится реальным опытом возникновения серьёзной ошибки из-за неправильного порядка аргументов при вызове функции, когда все идентификаторы были типом string, а все денежные значения - int.
Он показывает, что использование скалярных типов создаёт ложное чувство безопасности: компилятор проверяет лишь форму данных, а не их смысл, поэтому легко перепутать ID продавца с ID покупателя или валовую сумму с чистой. Даже группировка параметров в структуру не спасает от присвоения неправильных значений полям, если их типы одинаковы.
Решение - создание отдельных типов-обёрток (ShopId, CustomerId, Amount и т.д.), которые делают недопустимые состояния непредставимыми на уровне компиляции.
24.04.2026
Похожее
13.05.2026
Суперкомпьютер
В статье описывается опыт использования суперкомпьютера MareNostrum V (стоимость...
13.05.2026
Awesome axum
axum - это библиотека для маршрутизации HTTP и обработки запросов, написанная на...
12.05.2026
Свой TOML парсер
В этой статье научимся правильно обрабатывать ошибки в Rust. Учится будем создав...
11.05.2026
pgrust
Почему бы не переписать на Rust все? Не, ну прям реально все, даже если оно норм...