Без конкретного кода сложно точно указать, но типичные антипаттерны в функции handleCityChange на строке 52 могут быть такими:
Задача на code review: тебе дан код, написанный джуниором. Часть кода (до 18-й строки) менять нельзя, остальное нужно отревьюить. Найди всё, что кажется странным или нелогичным, и предложи исправления.
Без конкретного кода сложно точно указать, но типичные антипаттерны в функции handleCityChange на строке 52 могут быть такими:
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Без конкретного кода сложно точно указать, но типичные антипаттерны в функции handleCityChange на строке 52 могут быть такими:
- Мутация состояния напрямую — изменение состояния компонента или глобального состояния напрямую без использования setState или соответствующих методов, что нарушает принципы иммутабельности и может привести к багам.
- Слишком большая функция с множеством обязанностей — если handleCityChange выполняет сразу несколько задач (например, обновляет состояние, делает запросы, вызывает побочные эффекты), это усложняет поддержку и тестирование.
- Отсутствие обработки ошибок или асинхронных операций — если функция вызывает асинхронные операции (например, 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, разделять логику и обрабатывать ошибки.