Какое у вас отношение к кодогенерации и какими инструментами пользовались
Что проверяют
Есть ли у вас взвешенная позиция: где генерация экономит время и ловит ошибки, а где плодит код, который никто не понимает. Про инструменты спрашивают, чтобы понять, говорите ли вы по опыту. Следом обычно уточняют, коммитите ли вы сгенерированный код и что происходит, когда бэкенд меняет контракт.
Как отвечать
Сформулируйте позицию одной фразой: генерировать стоит то, у чего есть единый источник правды, и не стоит то, что потом правят руками. Дальше опыт по группам, называйте только то, чем пользовались сами:
- клиенты и типы по OpenAPI:
openapi-typescriptдля типов, Orval или@hey-api/openapi-tsдля клиента и хуков под TanStack Query. Swagger Codegen и Yeoman сейчас встречаются в основном в старых проектах; - GraphQL: GraphQL Code Generator строит типы и типизированные хуки по схеме и запросам;
- protobuf:
bufсts-protoили Connect для веб-клиента; - скаффолдинг: Plop или Hygen для заготовки компонента со стилями, тестом и story, генераторы Nx в монорепозитории.
Затем процесс, он и отличает опытного кандидата:
- когда генерировать: скриптом в
package.jsonи в CI, чтобы расхождение со схемой роняло сборку, а не прод; - коммитить или нет: рабочие оба варианта, важно, что сгенерированные файлы никто не правит руками;
- обёртка: сгенерированный клиент не размазывают по компонентам, вокруг него тонкий слой с авторизацией и обработкой ошибок.
Если разговор уходит к AI-ассистентам, отделите их от детерминированной генерации: результат ассистента это обычный код, который проходит ревью, а не артефакт сборки.
Где спотыкаются
Отвечают «отношусь положительно» и перечисляют названия. Без того, какую проблему решил инструмент, это ничего не говорит.
Правят сгенерированный файл руками, и следующая генерация стирает правку.
Генерируют по схеме, которая отстаёт от бэкенда. Типы зелёные, а на проде 400. Без проверки схемы в CI генерация даёт ложное чувство безопасности.