Есть ли у вас доступ к базе данных
Что проверяют
За простой формулировкой два вопроса: как в вашей прошлой команде был устроен доступ к базам и насколько взросло вы к нему относитесь. Следом обычно спрашивают, как вы разбирали проблему на проде без прямого доступа и как в Java-приложении настроено подключение.
Как отвечать
Опирайтесь на свой опыт и называйте конкретные вещи. Каркас такой:
- окружения: на dev и stage полный доступ, на проде только чтение, чаще через реплику, бастион или временно выданную роль. Если у вас было так, это хороший знак;
- изменения схемы: только миграциями через Flyway или Liquibase, которые катятся вместе с приложением. Если был ручной
ALTERна проде, объясните почему; - правка данных: скрипт в репозитории, ревью, запуск в транзакции, а перед этим
SELECTс тем же условием для проверки; - секреты: логины и пароли не в
application.ymlв git, а в переменных окружения, Vault или секретах Kubernetes.
Про сторону приложения скажите, чем пользовались: JDBC напрямую, JdbcTemplate, Spring Data JPA с Hibernate. Пул соединений в Spring Boot по умолчанию HikariCP, и полезно знать его ключевые настройки: maximum-pool-size (по умолчанию 10) и таймауты.
Если прямого доступа к проду у вас не было, это нормально и не минус. Расскажите, как обходились: логи, метрики, копия базы на стенде с обезличенными данными, запрос через коллегу с доступом.
Приведите реальный случай из своей практики: медленный запрос, найденный через EXPLAIN ANALYZE, или дедлок, и что вы сделали.
Где спотыкаются
Хвастаются полным доступом на проде и ручными UPDATE без транзакции. Для интервьюера это риск, а не опыт.
Отвечают односложно «да» или «нет». Вопрос открытый, и ждут рассказа о процессе.
Не знают, как их приложение подключается к базе: какой пул, сколько соединений, где лежит пароль. Для Java-разработчика это базовая часть работы.