TGViewer
PaPashaProger 💻 PaPashaProger 💻 @papashaproger · 118 subscribers
Post #306 70
Что вообще может сломаться в коде, который только что заработал?

Всем привет. А помните, я не так давно рассказывал, как пользователь всегда сам покажет, как может сломаться программа? Так вот, я тут подумал, а не замутить ли мне серию постов на эту тему. Сегодня - первый пост про то, а что может вообще пойти не так.

Спойлер: не так пойти может почти всё :)))

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

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


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

1. На примере формы обратной связи - могут прийти неожиданные данные от пользователя (как получилось у меня с виджетом)

И когда проектируешь такие системы, надо задать себе вопросы:

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

Основной сценарий мы строим на удобных нам данных, но никто не гарантирует, что всё пойдёт так, как задумано.

2. На примере "ой, я вам сайт сломал"

Всегда есть вероятность, что пользователь на вашем проекте:

- нажмёт кнопку два раза
- обновит страницу во время загрузки карточки товаров
- накосячит еще в четырех местах одновременно.

Мы представляем аккуратный маршрут: действие → результат → следующее действие. Реальный человек может прервать, повторить или поменять порядок почти в любой момент.

3. Проблемы с сетью и их обработка

Да, это круто, когда localhost работает с 50мс на обработку запроса. В реальности запрос может вообще оборваться. Или идти пять секунд. Что будет делать пользователь в это время? Нажимать кнопку повторно десяток раз? Или как он поймет, что данные вообще сохранились? Не покажет ли ему интерфейс результат, что всё хорошо, а на самом деле всё будет плохо?

4. Внешние данные решили измениться

Сегодня API отдаёт все нужные поля, а завтра одно поле отсутствует, приходит в другом формате. содержит зхначения, о которых никто не знал и которых никто не ожидал. Что будем делать? И еще прикол в том, что даже собственный backend может поменяться раньше, чем сторонний API, благодаря лишь одной просьбе к ИИ о переделке.

5. Конфликт старого и нового состояния

Допустим первый запрос выполняется долго. А пользователь, пока его ждал, выполнил второй. Второй ответ пришёл быстро, интерфейс обновился, а потом пришёл ответ от первого раза и перезаписал данные устаревшей версией. И в итоге - баг.

И это лишь малая часть примеров, которые следует учитывать при разработке. Про остальное - в дальнейшей серии постов, которую мы создадим совместно с Алёной, автором канала "Тестирую жизнь". Она замечательный человек и классный QA специалист, нам есть, что вам рассказать 😀

🧠 Вместо морали

"Я создал/а код и он работает" - это слишком широкое утверждение. Полезнее спрашивать:

При каких условиях система перестанет работать правильно?


И либо учесть это самому, либо попросить об этом ИИ. Пример промта:

Найди возможные поломки кода в четырёх категориях: граничные значения, неожиданные действия пользователя, проблемы сети и некорректные внешние данные. Пока не пиши тесты. Для каждого сценария опиши риск и ожидаемое поведение интерфейса. Не придумывай требования, отдельно отметь места, где их не хватает.


Так ИИ не просто подтверждает уже написанный happy path, а помогает искать предположения, которые мы забыли проверить.

#папашапрогер #полезное
  • ❤ 3
  • 👍 2
  • 🔥 2
More from @papashaproger
  1. Sep 30, 2026хорошая картинка, многое объясняет
  2. Sep 29, 2026Post #312
  3. Sep 29, 2026Всем привет! На связи Алёна, автор канала "Тестирую жизнь". Сегодня пришла к вам с первым…
  4. Sep 28, 2026Channel photo updated
  5. Sep 28, 2026Как я понимаю, что ученик понял тему Я уже несколько лет учу людей программированию. И ран…
  6. Sep 26, 2026photo post
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 →