Что такое принцип KISS
Что проверяют
Умеете ли вы видеть лишнюю сложность в своём коде и отстаивать простое решение, а не пересказывать расшифровку аббревиатуры. Нужны примеры из фронтенда. Следом спрашивают, как KISS уживается с DRY.
Как отвечать
KISS (Keep It Simple, Stupid) приписывают авиаконструктору Келли Джонсону из Lockheed: самолёт должен суметь починить обычный механик в полевых условиях. В коде смысл тот же: решение должно быть понятно следующему разработчику без долгого погружения. Простое не значит короткое, хитрый однострочник с тремя тернарниками проще не становится.
Примеры, которые хорошо звучат у фронтендера:
- производное состояние вместо синхронизации: значение, которое вычисляется из props или state, считают прямо в рендере, а не копируют в отдельный
useStateчерезuseEffect; - локальное состояние до глобального:
useStateи подъём состояния на уровень выше, а Redux или Zustand только когда данными делятся далёкие части приложения. Серверные данные отдают TanStack Query, а не пишут руками кэш в сторе; - без преждевременной оптимизации:
useMemoиuseCallbackна каждой функции усложняют код и не всегда ускоряют его, их ставят после замера в React Profiler. React Compiler к тому же берёт часть этой работы на себя; - платформа вместо велосипеда:
<button>,<dialog>,<details>, нативная валидация форм, CSS-анимации и:has()там, где раньше писали JS; - абстракция по факту: общий компонент выносят, когда появилось третье похожее место, а не заранее.
Рядом назовите YAGNI (не делать того, что пока не нужно) и напомните, что DRY, доведённый до крайности, сам нарушает KISS: универсальный компонент с двадцатью пропсами сложнее трёх простых.
Где спотыкаются
Отвечают только определением. Без своего примера, где вы упростили код или отказались от лишней библиотеки, ответ звучит заученно.
Путают простоту с минимальным объёмом кода. Короткий, но непонятный код нарушает KISS так же, как раздутый.
Прикрываются KISS, чтобы не думать о структуре. Один компонент на 800 строк это не простота, а запущенность: простым код делает то, что у каждой части одна понятная задача.