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

«Компьютер не работает»

Какой вопрос зададите первым?

01
Условная форма добавления книги с полями названия, автора и выбора обложки

«Книга не добавляется»

Пользователь заполнил форму и нажал «Добавить».

Что именно произошло?

02

Меняем одно условие

ПопыткаОбложкаРезультат
АНе выбранаКнига добавлена
БВыбранаКнига не добавлена
Остальные поля и исходное состояние каталога одинаковы.
03

Где пути расходятся?

Без обложкиС обложкой
Форма → добавлениеФорма → добавление
Сохранение книгиПодготовка обложки → ?
Книга в каталогеСохранение было вызвано?
Какое наблюдение отличит сбой сохранения от того, что до него не дошли?
04

Код до исправления

Пройдём его дважды: без обложки и с обложкой.

function addBook(book, coverFile) {
  if (coverFile) {
    book.cover = prepareCover(coverFile);
    return;
  }

  saveBook(book);
  showCatalog();
}
05

До сохранения дошли?

ШагБез обложкиС обложкой
Условие ifНетДа
Подготовка обложкиПропущенаВыполнена
saveBook(book)ВызванаНе вызвана
return завершил функцию раньше сохранения.
06

Инструмент отвечает на вопрос

ИнструментЧто хотим узнать
Журнал событийКакие этапы попытки записаны?
ОтладчикКуда пошло выполнение после обложки?
СтатистикаСбой только у книг с обложкой?
История GitКогда и зачем добавили эту ветку?
07

Исправление

После подготовки обложки выполнение продолжается.

function addBook(book, coverFile) {
  if (coverFile) {
    book.cover = prepareCover(coverFile);
  }

  saveBook(book);
  showCatalog();
}
08

Проверяем обе попытки

ПопыткаПосле исправления
Без обложкиКнига по-прежнему добавляется
С обложкойКнига добавляется вместе с обложкой
Обновить каталог и проверить, что результат сохранился.
09

Отладка — поиск по наблюдениям

Точный симптом → сравнение попыток → первое расхождение

Проверка причины → исправление → повтор обеих попыток

Сначала ищем, где поведение разошлось. Потом меняем код.
10
← → листать · F полный экран