Урок 4 из 8 · 20 мин · обновлено
Когда что-то сломалось: как описать ошибку и не потерять рабочее
Как описать ошибку так, чтобы нейросеть её исправила: что делали, что ждали, что получили. Где найти текст ошибки в консоли браузера, как не ломать работающее и когда вернуться к прошлой версии.
Ошибки — нормальная часть работы
Код от нейросети ломается часто. Не потому что вы что-то делаете не так: модель пишет правдоподобный код, но не запускает его и не видит результат. Видите его только вы. Поэтому умение описать ошибку — главный навык вайбкодинга, важнее умения красиво поставить задачу.
Как описать ошибку
Сообщение «не работает» нейросеть не может исправить — она не знает, что именно не работает. Хорошее описание отвечает на три вопроса:
- Что вы делали — по шагам: открыл страницу, ввёл «Бег», нажал «Добавить».
- Что ожидали — появится новая карточка «Бег».
- Что получили — ничего не произошло, карточки нет.
И если есть — текст ошибки из консоли браузера.
Консоль браузера
Многие ошибки не видны на странице: просто «ничего не происходит». Но браузер записывает их в консоль. Откройте её клавишей F12 (на Mac — Cmd + Option + I) и выберите вкладку Console. Красные строки — это ошибки.
Например, после очередного шага кнопка «Добавить» перестала работать, а в консоли такая строка:
Uncaught TypeError: Cannot read properties of null (reading 'addEventListener')
at tracker.html:52
Понимать её самому необязательно, хотя смысл простой: код в строке 52 ищет на странице элемент, которого нет, и пытается повесить на него обработчик нажатия. Скопируйте строку целиком и вставьте в запрос:
Нажимаю «Добавить» с текстом «Бег» — ожидаю новую карточку,
но ничего не происходит. В консоли ошибка:
Uncaught TypeError: Cannot read properties of null
(reading 'addEventListener') at tracker.html:52
Исправь только эту ошибку, остальное не меняй.
Пришли файл целиком.
Скорее всего, нейросеть найдёт причину за один ответ: например, в коде форма ищется по имени add-form, а в разметке у неё имя addForm. Одна буква — и весь сценарий не работает.
Не ломать то, что работает
У нейросетей есть привычка: исправляя одно, «улучшать» заодно другое — менять цвета, переименовывать, переписывать работающие части. Две защиты:
Явная граница в запросе. «Исправь только эту ошибку, остальное не меняй». Звучит очевидно, но заметно снижает число побочных изменений.
Копии рабочих версий. Каждый раз, когда шаг заработал, сохраняйте копию файла: tracker-1.html, tracker-2.html, tracker-3.html. Это ваши точки возврата. Если следующий шаг всё сломал, вы откроете последнюю рабочую версию за секунду, а не будете вспоминать, как было.
Ручные копии хороши для начала. Когда проектов станет больше, их заменит система контроля версий — ей посвящён курс «Git и GitHub» на этом сайте.
Когда нейросеть ходит по кругу
Бывает так: исправление ломает другое место, исправление другого места возвращает первую ошибку, и так по кругу. Код с каждым шагом запутаннее. Правило трёх попыток:
- Если три попытки исправить одну и ту же ошибку не помогли — остановитесь.
- Откройте последнюю рабочую копию.
- Опишите задачу шага заново, проще и конкретнее. Можно в новом чате: вставьте туда рабочий код и задание.
Новый чат помогает, потому что длинная переписка с десятком неудачных версий сбивает нейросеть: она путает, какая версия актуальная.
Попробуйте сами. Откройте свой трекер, откройте консоль клавишей F12 и проверьте, нет ли красных строк. Затем специально сломайте файл: в Блокноте удалите одну закрывающую фигурную скобку в коде внутри <script>, сохраните и обновите страницу. Найдите ошибку в консоли и составьте запрос на исправление по схеме из урока.
Что вы увидите и как может выглядеть запрос
В консоли появится ошибка синтаксиса, например:
Uncaught SyntaxError: Unexpected end of input
Это значит, что код оборвался раньше, чем закончился: браузер дошёл до конца и не нашёл закрывающую скобку. Трекер при этом может не реагировать на галочки и кнопку.
Запрос:
Открываю страницу — галочки не реагируют, кнопка «Добавить»
не работает. В консоли: Uncaught SyntaxError: Unexpected end
of input. Найди и исправь только эту ошибку, остальное не меняй.
Пришли файл целиком.
<код файла>
Правда, в этом упражнении проще вернуть рабочую копию — вы ведь сохранили её в прошлом уроке. Так и поступают в жизни: если ошибку только что внесли сами, быстрее откатиться, чем чинить.
Мини-тест: проверьте себя
Закрепите урок: несколько вопросов, разбор ответов — в конце.
-
Какое описание ошибки поможет нейросети больше всего?
В хорошем описании есть действие, ожидание, результат и точный текст ошибки. По ним нейросеть находит причину, а не гадает.
-
Где найти текст ошибки, если страница молча не работает?
Ошибки в коде страницы браузер пишет в консоль. Красная строка с текстом — главная подсказка, её копируют в запрос целиком.
-
Нейросеть исправила ошибку, но заодно поменяла дизайн, который вам нравился. Как избежать этого в следующий раз?
Нейросеть охотно «улучшает» заодно. Явная граница — исправить только ошибку — сохраняет то, что уже работает.
-
Третья попытка исправить ошибку снова не помогла, а код стал запутаннее. Что разумно?
Когда нейросеть ходит по кругу, каждая следующая правка запутывает код сильнее. Чистый старт от рабочей версии обычно быстрее.