Sobes.tech
Назад к вопросам
Middle
2

В функции handleCityChange на строке 52 есть три антипаттерна. Найди и объясни их.

Компании, где спрашивали
WildberriesWildberries

Ответ от нейросети

sobes.tech AI

Без конкретного кода сложно точно указать, но типичные антипаттерны в функции 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, разделять логику и обрабатывать ошибки.