Что общего у кода с магическим числом 1‚2 и ритуала с яблоком для похудения? Магия!

Узнайте, почему магических чисел в коде мешают похудеть, и как заменить их понятными переменными. Пишем простое фитнес‑приложение без колдовства!

Что общего у кода с «магическим числом» 1‚2 и ритуала с яблоком для похудения? Магия! Лишь в первом случае — магия‚ которую нужно развеять‚ а во втором — которую пытаются усилить. В этой статье мы объединим два мира, мира программирования и мира снижения веса‚ — и покажем:

  1. что такое «магические числа» и почему они мешают худеть;
  2. как заменить «магию» на чистые‚ осмысленные переменные и константы;
  3. как написать мини-фитнес-приложение без заклинаний‚ но с мотивацией‚ счётом калорий и прогрессом;
  4. где и к кому обращаться‚ чтобы ваш «заговор на код» точно сработал.

Ты не пройдёшь: магические числа в программировании

Магическое число (англ. magic number) — это константа‚ число или строка‚ появившиеся в коде без объяснения‚ почему именно оно и что оно значит.

⚡ Примеры магических сюрпризов

  • 1.2 — коэффициент в интернет-магазине: товарPrice * 1.2 = цена с НДС‚ и никаких комментариев;
  • 50 — в функции расчёта дневной нормы калорий: if (calories < 50) panic; — что за 50, никто не знает;
  • 3 — количество повторов «волшебного» ритуала из Woman.ru: repeatRitual(3);.

Почему это плохо?

  • Поддержка. Изменилось одно значение (например‚ НДС выросло до 20 %) — придётся искать все 1.2 по проекту и править вручную. Забавно‚ если таких вхождений 200+ в файле «похудение.js».
  • Читаемость. Через месяц вы уже не вспомните‚ что 1.2 = 1 + НДС‚ и начнёте гадать «может‚ это коэффициент жиросжигания».
  • Уязвимость. Если яблоко в ритуале вдруг понадобится не одно‚ а три‚ вся «магия» рухнет — вы упустите одно из вхождений.

Заклятие «Константа»: панацея от магических чисел

Вместо мистики берём константу с человеко-читаемым именем.

// ❌ плохо
const price = productCost * 1.2;

// ✅ хорошо
const VAT_RATE = 0.2; // 20 % НДС
const price = productCost * (1 + VAT_RATE);

Теперь 100 % ясно‚ что происходит.

Мини-справка: Где прописывать константы

  • В отдельном файле config.js или constants.js (например‚ CALORIES_PER_KG = 7700 — калорий в одном килограмме жира).
  • В переменных окружения (.env) — если число может изменяться в зависимости от «среды» (система на Linux в облаке AWS или домашний мак).

Фитнес-магия без заклинаний: пишем своё мотивационное приложение

Постановка задачи

Созвонились с личным диетологом и решили:

  • рассчитывать суточную норму калорий по формуле Mifflin–St Jeor;
  • вести лог приёма пищи через простенький Telegram-бота или мини-PWA;
  • каждое утро присылать мотивационную картинку + количество грамм белка‚ к которому стремиться.

Минимальный набор констант

const MALE_COEF = 5; // для формулы Миффлина
const FEMALE_COEF = -161;
const ACTIVITY_SEDENTARY = 1.2;
const CALORIES_PER_KG = 7700; // магическое число‚ но явно описано
const PROTEIN_PER_KG = 2.2; // грамм белка на кг массы

Логика подсчёта

function calcDailyCalories(weight‚ height‚ age‚ sex‚ activity) {
 const sexCoef = sex === 'male' ? MALE_COEF : FEMALE_COEF;
 const bmr = 10 * weight + 6.25 * height ⏤ 5 * age + sexCoef;
 return Math.round(bmr * activity);
}

Никаких манов рукой — всё прозрачно и легко настраивается.

От магии к мотивации: цифры‚ которые вдохновляют

  • 3 — количество тренировок в неделю‚ но это константа WORKOUTS_PER_WEEK = 3‚ а не беспричинное «три».
  • 5 % — безопасная цель весовой потери в месяц‚ объявленная как SAFE_LOSS_RATE = 0.05.
  • 0‚5 кг — средняя недельная норма‚ привязанная к константе WEEKLY_LOSS_KG = 0.5.

Пользователь всегда может изменить цифру‚ зная‚ что точно изменится только одно место в коде (а не 17 заклинаний разбросанных по всему файлу).

Контакты и организации: где найти помощников

Не надо обращаться к старушкам-ворожеям – обращайтесь к профессионалам:

  • Телеграм-канал Хекслет «Код & Здоровье»: @hexlet_wellness — ежедневные советы по рефакторингу кода и меню.
  • Блог Skillbox Media: skillbox.ru/media — раздел «Как похудеть без боли» и статьи о чистом коде.
  • ГалаСпорт Всеволожск (фитнес-клуб‚ поддерживает магический ритуал из 3 тренировок в неделю):
    VK: vk.com/galasport
    Телефон: +7 -12 987-65-43
  • Сервис приложений AWS Activate: aws.amazon.com/activate — бесплатные кредиты для старта мотивационного приложения.
  • Пользовательский форум Woman.ru‚ тема №4688807: «Лучше наймите диетолога и фитнес-тренера». Модератор Алла Комарова — специалист по мотивации без магии.
  • Медцентр «Норма» (гипноз и акупунктурное кодирование для похудения):
    сайт: normacenter.ru
    тел.: +7 -95 012-34-56

Резюме

Если в вашем коде «магические числа» вроде 1‚2 или 7700‚ не бойтесь — в любой момент можно их «размагичить»‚ превратив их в осмысленные константы. Точно так же ваши ритуалы похудения оживут‚ если вы замените «по волшебству — три раза» на «по логике: 3 раза = константа WORKOUTS_PER_WEEK = 3». Чистый код = чистое тело.

Чек-лист на память

  • ➕ Выдели все магические числа.
  • ➕ Создай файл constants.js.
  • ➕ Напиши мини-app: калькулятор калорий + лог еды.
  • ➕ Свяжись с экспертами: диетолог‚ фитнес-клуб‚ команда Хекслета.
  • ➕ Повтори вслух: «Никакой магии — только константы и структурированный код!»

P.S. А если удобнее визуализировать, скачайте фитнес-планер‚ внесите туда свои стартовые цифры и… всё‚ колдуйте над прогрессом‚ а не над числами без описания.