Автор делится реальным опытом возникновения серьёзной ошибки из-за неправильного порядка аргументов при вызове функции, когда все идентификаторы были типом string, а все денежные значения - int.
Он показывает, что использование скалярных типов создаёт ложное чувство безопасности: компилятор проверяет лишь форму данных, а не их смысл, поэтому легко перепутать ID продавца с ID покупателя или валовую сумму с чистой. Даже группировка параметров в структуру не спасает от присвоения неправильных значений полям, если их типы одинаковы.
Решение - создание отдельных типов-обёрток (ShopId, CustomerId, Amount и т.д.), которые делают недопустимые состояния непредставимыми на уровне компиляции.
24.04.2026
Похожее
23.04.2026
Soppo
Какая-то неожиданная волна новых языков, похожих на Go, только с блэкджеком и гу...
23.04.2026
Toasty
Статья про релиз первой стабильная версия асинхронной ORM Toasty для Rust Биб...
22.04.2026
Генерация WAV
Мы спустимся на самый низ - к тому, "какие биты куда идут", с помощью честного, ...
21.04.2026
Время жизни. Еще раз
Автор, с позиции своего опыта в C и C++, исследует механизм времени жизни в Rust...