Что такое плохо написанный код
Что проверяют
Есть ли у вас рабочее определение качества, кроме вкусовщины. Интервьюер хочет услышать признаки, которые вы реально ловите на ревью, и понимание цены: плохой код это не некрасивый, а дорогой в изменении и опасный при правке.
Во фронтенде у этой темы своя специфика: цена небрежности видна в размере бандла, в лишних перерисовках и в поведении на слабом устройстве, а не только в читаемости.
Как отвечать
Рабочее определение: плохо написанный код это код, у которого стоимость безопасного изменения выше оправданной. Дальше признаки, которые видно глазами:
- по имени невозможно понять, что делает функция или что лежит в переменной;
- одна единица отвечает за многое: компонент грузит данные, хранит состояние формы, форматирует и рисует;
- логика продублирована и разъехалась по нескольким местам;
- скрытые связи, когда правка в одном файле молча ломает соседний экран;
- код нельзя проверить тестом, не подняв половину приложения;
- отключённая типизация и проглоченные ошибки в пустом обработчике.
Фронтовые маркеры: серверные данные продублированы в локальном состоянии, цепочки эффектов, синхронизирующих одно состояние с другим, пробрасывание пропсов через пять уровней, тяжёлые вычисления на каждый рендер, инлайн-стили вместо общей системы.
Закончить лучше тем, как вы это лечите: линтер и типы в конвейере сборки, маленькие изменения на ревью, рефакторинг под прикрытием тестов.
Где спотыкаются
Называют главным признаком отсутствие комментариев. Комментарий, пересказывающий код, это шум; нужен он там, где объясняет причину решения или неочевидное ограничение. Понятное имя закрывает вопрос лучше подписи над строкой.
Смешивают качество с производительностью. Медленный алгоритм это отдельный дефект: аккуратный код бывает медленным, а запутанный быстрым, и лечатся они разными действиями.
Отвечают набором аббревиатур без единого примера из своей практики. На встречный вопрос, что конкретно вы улучшили за последний месяц и почему именно это, ответа не остаётся, и разговор закрывается не в пользу кандидата.