Разрушение Mars Climate Orbiter в 1999 году произошло из-за несоответствия единиц измерения между метрической и имперской системами. Программное обеспечение двигателей использовало Ньютоны, в то время как входные данные использовали фунты-силы, что привело к катастрофическому сбою. Необработанные числа без единиц измерения по своей сути опасны и могут приводить к скрытым ошибкам в программном обеспечении. Компьютеры обрабатывают числа, не учитывая контекст, что делает ошибки в единицах измерения легко упускаемыми из виду. Чтобы предотвратить такие ошибки, встраивайте единицы измерения в имена полей, делая код самодокументируемым. Используйте явные имена полей, такие как `size_bytes` или `price_cents_usd`, вместо неоднозначных. Брендированные типы в языках, таких как Typescript, обеспечивают безопасность единиц измерения во время компиляции, предотвращая несовместимые операции с единицами измерения. Полагаться исключительно на документацию для информации о единицах измерения недостаточно, так как ее легко пропустить. Стандартизация на единицах СИ внутри компании является лучшей практикой, но поддержание согласованности является ключевым моментом. Для устаревших систем вводите новые, явные поля и постепенно отказывайтесь от старых. Целые числа предпочтительны для таких единиц измерения, как валюта и время, чтобы избежать проблем с точностью чисел с плавающей запятой.
dev.to
NASA’s $125M Unit Error: Why Your API Needs Explicit Naming
Create attached notes ...
