Post Thumbnail

Автор делится реальным опытом возникновения серьёзной ошибки из-за неправильного порядка аргументов при вызове функции, когда все идентификаторы были типом string, а все денежные значения - int.

Он показывает, что использование скалярных типов создаёт ложное чувство безопасности: компилятор проверяет лишь форму данных, а не их смысл, поэтому легко перепутать ID продавца с ID покупателя или валовую сумму с чистой. Даже группировка параметров в структуру не спасает от присвоения неправильных значений полям, если их типы одинаковы.

Решение - создание отдельных типов-обёрток (ShopId, CustomerId, Amount и т.д.), которые делают недопустимые состояния непредставимыми на уровне компиляции.

Похожее

Post Thumbnail

zedis

Нативный Redis GUI, написанный на Rust с использованием GPUI. Тот же движок ренд...

Post Thumbnail

Робоутка

Microduck от Pollen Robotics - это открытый репозиторий "мозга" крошечного двуно...