120308
Что вы поняли после прочтения вышеприведенного номера?
Это просто необработанные данные. Интерпретация предоставляется читателю данных.
Тем не менее, читатель может не понять, что за этим стоит.
- Это может быть почтовый индекс города.
- Это может быть день рождения в формате ДДММГГ.
- Это может быть номер телефона без кода города.
- Он может представлять N количество вещей.
Согласны ли вы со мной в том, что использование только необработанных данных не передает его намерения?
Точно так же магическое число в коде похоже на необработанные данные, которые не передают своего намерения читателю кода.
Магическое число — это числовое значение, которое используется в коде. Это значение имеет необъяснимое значение и затрудняет читаемость кода.
Вот я не понял смысла магического числа 10000000.
Будь то размер в битах, байтах, КБ, МБ, ГБ?
Что ж, давайте введем именованную константу и посмотрим, что получится.
Как только вы предоставляете метаданные о данных, т. е. релевантные данные, они становятся информацией для читателя. Читатель может легко работать с ним, так как намерение ясно.
Другой пример:
Плохой способ
Лучший способ
Таким образом, именованные константы можно использовать для предоставления информации о необработанных данных, чтобы читатель вашего кода мог легко выяснить намерение.
Следовательно, замените магические числа именованными константами.
Первоначально опубликовано на https://beingcraftsman.com 8 сентября 2018 г.