Приходилось ли писать скрипты для работы с React
Что проверяют
Питониста спрашивают не про React, а про стык: понимаете ли вы, где заканчивается бэкенд и начинается фронт, и умеете ли автоматизировать эту границу. Рассказ про хуки и хранилище состояния мимо вопроса.
Как отвечать
Перечислите реальные точки соприкосновения, где скрипт на Python приносит пользу:
- генерация клиента и типов из схемы: приложение отдаёт описание в формате OpenAPI, по нему собирается типизированный клиент, и фронт не переписывает контракт руками;
- сборка и выкладка статики:
subprocess.run(["npm", "ci"], check=True), затем сборка, копирование артефактов и сброс кэша раздачи; - подготовка данных для сквозных тестов фронта и наполнение стенда;
- синхронизация словарей локализации между файлами фронта и хранилищем переводов, поиск ключей, которых нет во втором языке;
- отдача
index.htmlкак запасного маршрута для одностраничного приложения и проксирование дев-сервера.
Главная мысль, которую стоит произнести вслух: единый источник правды это схема API, а не устная договорённость. Всё, что можно сгенерировать, генерируется, иначе фронт и бэкенд расходятся молча, а замечают это уже на проде.
Где спотыкаются
Запускают сборку через оболочку со склеенной строкой и без проверки кода возврата. Падение сборки проходит незамеченным, выкладывается прошлый набор файлов, а подстановка имени ветки в команду открывает инъекцию.
Второе: забывают, что переменные окружения фронта вклеиваются в бандл на этапе сборки. Скрипт, который правит файл окружения после сборки, не меняет ничего, а секрет, положенный в такую переменную, виден любому через исходники страницы.
Третье: отвечают заученной историей с выдуманной экономией времени на деплое. Числа без замера проверяются одним вопросом о том, что именно занимало минуты, и ответа обычно нет.