Sobes.tech
Middle

In de functie handleCityChange op regel 52 zijn er drie antipatterns. Vind ze en leg ze uit.

sobes.tech AI

Antwoord van 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, разделять логику и обрабатывать ошибки.