120308

Что вы поняли после прочтения вышеприведенного номера?

Это просто необработанные данные. Интерпретация предоставляется читателю данных.

Тем не менее, читатель может не понять, что за этим стоит.

  • Это может быть почтовый индекс города.
  • Это может быть день рождения в формате ДДММГГ.
  • Это может быть номер телефона без кода города.
  • Он может представлять N количество вещей.

Согласны ли вы со мной в том, что использование только необработанных данных не передает его намерения?

Точно так же магическое число в коде похоже на необработанные данные, которые не передают своего намерения читателю кода.

Магическое число — это числовое значение, которое используется в коде. Это значение имеет необъяснимое значение и затрудняет читаемость кода.

Вот я не понял смысла магического числа 10000000.

Будь то размер в битах, байтах, КБ, МБ, ГБ?

Что ж, давайте введем именованную константу и посмотрим, что получится.

Как только вы предоставляете метаданные о данных, т. е. релевантные данные, они становятся информацией для читателя. Читатель может легко работать с ним, так как намерение ясно.

Другой пример:

Плохой способ

Лучший способ

Таким образом, именованные константы можно использовать для предоставления информации о необработанных данных, чтобы читатель вашего кода мог легко выяснить намерение.

Следовательно, замените магические числа именованными константами.

Первоначально опубликовано на https://beingcraftsman.com 8 сентября 2018 г.