Серьезно, я не хочу, чтобы тебя уволили, так что прекрати это делать.

В рамках своей повседневной работы на днях я увидел сообщение, которое не понял, когда кодировал логику функции для указанной конечной точки. Ошибка была вызвана инструментом, который я использую, он называется ESLint, и он говорит что-то вроде…

/*eslint no-magic-numbers: "error"*/

Ну, я считаю себя хорошим программистом (учитывая, что я еще младший), но настолько, чтобы творить магию… Ладно, нет. Я поискал информацию об этой ошибке в Интернете и нашел кое-что, что улучшило качество кода, и я могу создать его прямо сейчас.

Я узнал, что такое волшебная константа и как она может разрушить мой код и стать причиной моего немедленного увольнения из-за количества проблем, которые их использование создает в коде.

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

Знаете ли вы магические константы? Знаете ли вы, как избежать его использования?

Что такое магическая константа?

Волшебная константа — это термин, который мы используем, когда включаем в наш код литерал без указания происхождения этого литерала. Фрагмент кода ниже является прекрасным примером этого:

Если вы читаете этот код, вы можете понять, что есть функция для отображения текущей даты с учетом предыдущей даты. У вас было все ясно, когда вы писали этот код, и вы знали, что означает это число 15. Но теперь, у вас есть это ясно? Любой, кто попытается масштабировать или понять ваш код, поймет, что означают эти 15. Нет! По этой причине мы назвали его Magic Constans.

Они появляются в коде волшебным образом

Кроме того, многие разработчики считают эту практику анти-шаблоном, поскольку она нарушает одно из старейших правил программирования. При его использовании намерение и объяснение использования этого значения теряются.

Несмотря на это, для борьбы с этим шаблоном мы можем сделать что-то вроде этого:

Нам так больше нравится, не так ли? Теперьмы знаем, что означает это значение, и можем изменить его и масштабировать, когда захотим без каких-либо сомнений.

Почему нас могут уволить, если мы их используем?

Возможно, использование этого названия может показаться немного апокалиптическим, но причина такого выбора заключается в том, что постоянное использование магии может создать несколько проблем в нашем коде.

Эти проблемы приведут к затратам для нашей компании и потерям времени для нашего проекта. Даже во многих случаях это приведет к новым ошибкам и неправильному поведению нашего кода.

На самом деле они действительно могут делать нас неспособными выполнять свою работу. И все знают, что если вы не будете выполнять свою работу, вас уволят.

Если эта причина не кажется вам достаточно сильной, позвольте мне дать вам больше объяснений:

  • Их использование уменьшит читабельность и понятность нашей программы.
  • Наш код будет иметь проблемы с масштабируемостью при их использовании. Потому что, если мы введем 15 много раз, мы будем искать это значение и менять все вхождения. Однако, если мы используем переменную, нам нужно только изменить ее значение.
  • Использование магической константы почти так же плохо, как неправильное название переменных. В этой предыдущей статье мы видели, что это была действительно плохая идея.
  • Наш код не говорит сам за себя. Одна из характеристик, которыми обладает высококачественный код, заключается в том, что он не требует пояснений. Каждый должен правильно понять наш код, только прочитав его. Это означает знание назначения кода, функциональности, логики, стоящей за ним, и т. д.
  • Код с волшебной константой будет практически невозможно рефакторить. В то время как мы используем одну и ту же магическую константу более одного раза, сложность рефакторинга этого кода растет в геометрической прогрессии (придуманная статистика, но серьезно, она становится очень утомительной).

Но не волнуйтесь, я дам вам действительно полезный совет, как их избежать ;).

Почему мы можем это предотвратить?

Самое простое решение — использовать именованную константу вместо случайного добавления чисел в наш код. Но это очевидно, вам не нужно было говорить, что вы думали об этом раньше.

Я предлагаю вам лучший вариант, одну практику, которая может навсегда изменить качество кода, который вы пишете. Когда вы закончите писать код, уберите руки с клавиатуры и потратьте 5 минут на то, чтобы посмотреть и понять код.

Вы прекрасно понимаете свой код? Можете ли вы читать свой код почти как книгу? Это самоочевидно?

Если вы ответили отрицательно хотя бы на один из этих вопросов, пора вернуться и изменить его на что-то лучшее. На самом деле, это не указанная практика избегать магических констант, но я уверен, что с этим вы избежите их. Кроме того, улучшится качество всего вашего кода.

Также вы можете использовать такие инструменты, чтобы этого избежать, как ESLint (об этом замечательном инструменте я расскажу вам в будущем).

А если вы хотите улучшить качество своего кода и даже больше, не пропустите эти полезные статьи:





Последние мысли

Магические константы считаются антишаблоном, которого следует избегать.

Использование чисел непосредственно в нашем коде всегда будет плохой идеей, несмотря на это, мы должны использовать именованные константы или переменные с правильными именами. Мы должны помнить об этом с каждым типом данных и литералом.

В этой статье мы рассмотрели что такое магические константы и некоторые недостатки их использования, такие как ухудшение читабельности нашего кода. Кроме того, я предложил вам новый подход к коду, который позволяет улучшить качество всего вашего кода и избежать магических констант.

Кто-нибудь использует магические числа в вашей работе? Какие методы вы рекомендуете для улучшения качества нашего кода?

Вы думаете о покупке Среднего членства? Если вы хотите получить доступ к лучшему контенту на Medium, подумайте об использовании моей реферальной ссылки. Та же цена, и вы поддержите мою работу.

Выводы 👋

Спасибо! Большое спасибо за прочтение статьи. Если вы хотите узнать больше о технологиях и разработках, не забудьте подписаться на меня. Мне бы очень хотелось узнать ваше мнение об этом, так что, чувак, не пишите это в комментариях, я вас прочитаю.

Если эта статья помогла вам вспомнить, вы можете похлопать ей и поделиться ею со своими товарищами.

Об авторе🤓

Привет! Рад встрече! Я Хесус Лагарес. В настоящее время я работаю разработчиком программного обеспечения для серверной части и получаю степень по компьютерным наукам в Университете Кадиса.

Две мои страсти — технологии и общение, поэтому я использую любую возможность, чтобы поговорить или написать о технологиях. Я люблю превращать сложные понятия в простые, понятные каждому.

Хотите подключиться? 📲

📸 Инстаграм | 💼LinkedIn |📹 Youtube |🐦Twitter

📩 [email protected]

Спасибо! ❣️

Дополнительные материалы на PlainEnglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter, LinkedIn, YouTube и Discord. Заинтересованы в Взлом роста? Ознакомьтесь с разделом Схема.