Что общего у кода с «магическим числом» 1‚2 и ритуала с яблоком для похудения? Магия! Лишь в первом случае — магия‚ которую нужно развеять‚ а во втором — которую пытаются усилить. В этой статье мы объединим два мира, мира программирования и мира снижения веса‚ — и покажем:
- что такое «магические числа» и почему они мешают худеть;
- как заменить «магию» на чистые‚ осмысленные переменные и константы;
- как написать мини-фитнес-приложение без заклинаний‚ но с мотивацией‚ счётом калорий и прогрессом;
- где и к кому обращаться‚ чтобы ваш «заговор на код» точно сработал.
Ты не пройдёшь: магические числа в программировании
Магическое число (англ. 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. А если удобнее визуализировать, скачайте фитнес-планер‚ внесите туда свои стартовые цифры и… всё‚ колдуйте над прогрессом‚ а не над числами без описания.