TGViewer
10 минут до кода 10 минут до кода @ten_minutes_to_code · 228 subscribers
Post #39 108
Почему ваш «рабочий» код — это баг

В начале пути мы думаем, что баг — это когда код упал. Пропущенная точка с запятой, неверный синтаксис или обращение к несуществующей переменной.

Но с опытом приходит понимание: настоящий баг — это не поломка кода, а расхождение моделей. Это момент, когда ожидания системы, разработчика и бизнеса разъезжаются в разные стороны.

Код — штука прямолинейная. Он всегда работает ровно так, как его написали. Ему плевать на ваши намерения. Баг возникает там, где написанное перестает соответствовать реальности.

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

Тихая деградация логики

Возьмем классику: подкапотка должна вернуть username в ответе API. Вместо этого из-за кривого условия бэкэнд отдает пустоту (null). Фронтенд получает данные, статус-код — 200, ошибок нет. Но юзер видит пустое место вместо своего имени. Это явный баг, хотя система считает, что всё в порядке.

Или пример с бизнес-логикой: скидка на 10-й заказ. Если разработчик ошибся в расчетах и включил текущий, еще не оплаченный заказ в счетчик, клиент получит бонус уже на девятом шаге. С точки зрения кода — это просто математика. С точки зрения бизнеса — это баг, который высасывает бюджет.

Инженерное проектирование ошибок

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

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

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

Если что-то всё ещё звучит запутанно — пиши вопросы в комментах, я обязательно отвечу. А если всё разложилось по полочкам — ставь 🔥, так я пойму, что пост был полезен

10МДК
More from @ten_minutes_to_code
  1. May 28, 2026Первый сезон получился про путь “от пользователя к инженеру”. Именно эту картину мы весь с…
  2. May 28, 2026Когда я запускал этот канал, у меня была довольно простая идея: писать каждый день коротки…
  3. May 7, 2026Почему нормализация БД — это чистая логика, а не бюрократия На любом ongoing-проекте требо…
  4. May 3, 2026🤔 А где новые посты? Сори что вот так пропал без предупреждения, но я думал что справлюсь…
  5. Apr 29, 2026Почему HTTPS не спасет ваши секреты Замочек в адресной строке браузера — это мощное успоко…
  6. Apr 28, 2026Целостность данных против иллюзии атомарности Начинающий разработчик видит базу данных как…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →