Задача на code review: тебе дан код, написанный джуниором. Часть кода (до 18-й строки) менять нельзя, остальное нужно отревьюить. Найди всё, что кажется странным или нелогичным, и предложи исправления.

Без конкретного кода сложно точно указать, но типичные антипаттерны в функции handleCityChange на строке 52 могут быть такими:

Короткий ответ

Что ответить на собеседовании

Без конкретного кода сложно точно указать, но типичные антипаттерны в функции handleCityChange на строке 52 могут быть такими:

Подробный разбор

Ответ с пояснениями

Без конкретного кода сложно точно указать, но типичные антипаттерны в функции handleCityChange на строке 52 могут быть такими:

  1. Мутация состояния напрямую — изменение состояния компонента или глобального состояния напрямую без использования setState или соответствующих методов, что нарушает принципы иммутабельности и может привести к багам.
  2. Слишком большая функция с множеством обязанностей — если handleCityChange выполняет сразу несколько задач (например, обновляет состояние, делает запросы, вызывает побочные эффекты), это усложняет поддержку и тестирование.
  3. Отсутствие обработки ошибок или асинхронных операций — если функция вызывает асинхронные операции (например, API-запросы) без обработки ошибок или без использования async/await, это может привести к непредсказуемому поведению.

Пример плохой практики:

function handleCityChange(event) {
  city = event.target.value; // прямое изменение переменной
  fetch('/api/data?city=' + city) // без обработки ошибок
    .then(response => response.json())
    .then(data => {
      // обновление состояния напрямую
      state.data = data;
    });
}

Лучше использовать setState, разделять логику и обрабатывать ошибки.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку