Что такое магические числа в программировании и как снять это заклятие

Магические числа — пример плохих практик в программировании. Из этой статьи вы узнаете, почему от них надо избавляться и как это делать.
Содержание
Что такое магические числа
В программировании магическими называют числа в коде, смысл которых сложно понять. Взгляните на пример.
Это пример магического числа, потому что невозможно однозначно ответить на вопрос, почему для вычисления bruttoPrice
нужно умножить nettoPrice
на 1.20
. Смысл числа 1.20
приходится восстанавливать по контексту. Но при работе с большими приложениями в реальной разработке это не всегда возможно.
Магические числа не ломают код. В примере выше пользователь увидит окончательную цену, то есть программа отработает. В чём же проблема?
Код с магическими числами сложно понять без контекста. Это может стать проблемой для разработчиков, которые впервые видят приложение. Да и автор кода может забыть, почему использовал именно это число.
Как избавиться от магических чисел
Это можно сделать с помощью константы с понятным названием. То есть название константы должно передавать смысл числа.
Очевидное указание ставки НДС делает код более понятным.
Код с магическими числами сложно поддерживать и расширять. Например, если магазин продаёт товары людям из разных стран, магические числа приводят к дублированию:
Проблему решает избавление от магических чисел:
Резюме:
- Магические числа — плохая практика в программировании
- Обычно магические числа не ломают код, а делают его менее понятным
- Чтобы избавиться от магических чисел, достаточно использовать константы или переменные с понятными названиями
Дополнительные материалы
Дмитрий Дементий
5 лет назад