Prisma: вопросы на собеседовании
Вопросы и ответы по Prisma: подготовка, примеры и типичные ошибки.
Проверьте себя по Prisma: 5 вопросов, ~10 минут
Вопросов: 41. Частые идут первыми, сложные возвращаются на повторение.
- Что такое Prisma Migrate? Чем отличаются
prisma migrate devиprisma migrate deploy?Middle· спрашивают почти всегда· полный разбор — Jobs/Boost - Как определить связи один-к-одному, один-ко-многим и многие-ко-многим в Prisma?Middle· спрашивают почти всегда· полный разбор — Jobs/Boost
- Когда Prisma ускоряет разработку, а когда ORM-абстракция начинает мешать понимать базу данных?Middle· спрашивают почти всегда· полный разбор — Jobs/Boost
- Как выполнять CRUD-операции с Prisma Client (create, findUnique, findMany, update, delete)?Junior· спрашивают почти всегда
- Каковы три основных компонента Prisma: Prisma Client, Prisma Migrate и Prisma Studio?Junior· спрашивают почти всегда· полный разбор — Jobs/Boost
- Как Prisma Client обеспечивает типобезопасность? Как генерируются типы?Junior· спрашивают почти всегда
- Что такое Prisma ORM и чем он отличается от традиционных ORM, таких как Sequelize или TypeORM?Junior· спрашивают почти всегда· полный разбор — Jobs/Boost
- Что такое транзакции в Prisma? Как использовать
prisma.$transaction()для интерактивных и batch-транзакций?Senior· спрашивают почти всегда· полный разбор — Jobs/Boost - Как сравнить Prisma с raw SQL, query builder и другими ORM по контролю, типобезопасности и производительности?Junior· спрашивают почти всегда
- Как структурирована схема Prisma (
schema.prisma)? Что такое модели, поля и связи (relations)?Junior· спрашивают почти всегда - Как оптимизировать запросы Prisma, чтобы избежать проблемы N+1?Senior
- Что такое API
$connect()и$disconnect()? Как управлять жизненным циклом Prisma Client в serverless-окружениях?Senior· полный разбор — Jobs/Boost - Что такое блок
datasourceвschema.prisma? Как настроить его для разных окружений?Middle· полный разбор — Jobs/Boost - В чём разница между
findUnique,findFirstиfindFirstOrThrow?Junior - Что такое неявная (implicit) и явная (explicit) связь many-to-many? Когда использовать каждую?Middle
- Как Prisma обрабатывает связи в запросах? Что такое
includeиselect?Middle· полный разбор — Jobs/Boost - Как Prisma работает с индексами базы данных и уникальными ограничениями в схеме?Middle· полный разбор — Jobs/Boost
- Что такое middleware Prisma (устаревший) и расширения Prisma Client (Prisma Client extensions)? Что такое
$extends?Senior - Что такое вложенные записи (nested writes) в Prisma? Как создавать записи со связанными данными в одной операции?Middle· полный разбор — Jobs/Boost
- Как работает пагинация в Prisma? В чём разница между offset-based и cursor-based пагинацией?Middle
- Как понять, что проблема в приложении связана с Prisma, а не с индексами, схемой, isolation level или плохим SQL?Senior· полный разбор — Jobs/Boost
- Представьте, после изменения кода на Prisma выросло число SQL-запросов и latency. Как вы будете это доказывать и чинить?Senior· полный разбор — Jobs/Boost
- Как обрабатывать drift между Prisma schema, migrations и реальной базой?Middle· полный разбор — Jobs/Boost
- Какие типы полей существуют в Prisma и как они маппируются на типы базы данных?Junior· полный разбор — Jobs/Boost
- Что такое шаг генерации
@prisma/clientи почему нужно запускатьprisma generateпосле изменений схемы?Junior - Какие ошибки делают команды, когда прячут сложность базы данных за Prisma?Middle
- Какая mental model Prisma важнее всего: unit of work, change tracking, query generation, migrations или generated client?Middle· полный разбор — Jobs/Boost
- Какие production-риски есть у Prisma: N+1, транзакции, lazy loading, connection pooling, migrations и raw queries?Senior· полный разбор — Jobs/Boost
- Что такое raw-запросы Prisma (
$queryRaw,$executeRaw)? Когда их следует использовать?Senior· полный разбор — Jobs/Boost - Как выполнять фильтрацию в Prisma? Объясните операторы:
where,contains,startsWith,in,gte,lte.Junior· полный разбор — Jobs/Boost - Как использовать Prisma с несколькими базами данных или схемами?Senior· полный разбор — Jobs/Boost
- Что такое
prisma db pushи когда его использовать вместо миграций?Middle· полный разбор — Jobs/Boost - Расскажите о случае, когда Prisma помог или помешал вам при миграциях, транзакциях, оптимизации запросов или борьбе с N+1.Middle· полный разбор — Jobs/Boost
- Какие isolation levels и transaction options поддерживает Prisma и когда они важны?Middle
- Как Prisma ведёт себя с connection pooling в serverless и long-running приложениях?Middle· полный разбор — Jobs/Boost
- Как выполнять seeding базы данных в Prisma?Middle· полный разбор — Jobs/Boost
- Как реализовать soft delete с помощью Prisma?Senior· полный разбор — Jobs/Boost
- Как тестировать код, использующий Prisma? Какие стратегии мокирования доступны?Middle
- Что такое Prisma Accelerate и какую проблему он решает для serverless/edge-деплоев?Senior
- Что такое
prisma validateиprisma format?Junior· полный разбор — Jobs/Boost - Каковы компромиссы использования Prisma по сравнению с написанием сырого SQL или использованием query builder'а, такого как Drizzle ORM?Senior· полный разбор — Jobs/Boost