Senior .NET Developer: Робота з даними — повний список тем для співбесіди

Programming
Previous

🧠 1. Реляційні бази даних (основа)

  • Нормалізація (1NF–3NF, коли денормалізація виправдана)
  • ACID властивості
  • Типи зв’язків (1:1, 1:N, M:N)
  • Constraints (PK, FK, UNIQUE, CHECK)
  • NULL semantics

⚙️ 2. SQL

  • JOIN-и (INNER, LEFT, CROSS, SELF)
  • GROUP BY / HAVING
  • Window functions (ROW_NUMBER, RANK, LAG/LEAD)
  • CTE (WITH)
  • Subqueries vs JOIN
  • Execution plans (читання і аналіз)
  • Parameter sniffing
  • Query hints (коли і навіщо)

🚀 3. Індекси і оптимізація

  • Clustered vs Non-clustered indexes
  • Composite indexes (порядок колонок!)
  • Covering index
  • Index selectivity
  • Index fragmentation
  • Коли індекс шкодить
  • Index scan vs seek

🧵 4. Транзакції і конкурентність

  • Isolation levels (усі 4 рівні)
  • Deadlocks (причини + способи уникнення)
  • Optimistic vs pessimistic locking
  • Row versioning
  • TransactionScope vs DbContext transactions
  • Retry policies (особливо в cloud)

🧱 5. Entity Framework Core

Базове

  • DbContext lifecycle
  • Change Tracker

Завантаження даних

  • Lazy vs Eager vs Explicit loading
  • Include / ThenInclude
  • N+1 problem

Оптимізація

  • Tracking vs NoTracking
  • Projection (Select)
  • Split queries
  • Compiled queries
  • Raw SQL (FromSql)

Під капотом

  • Як EF генерує SQL
  • Client vs Server evaluation
  • Як дебажити SQL

⚡ 6. Підключення і ресурси

  • Connection pooling (ADO.NET)
  • Connection lifetime
  • Pool exhaustion
  • Async/await і робота з БД
  • I/O bound операції

🔄 7. Міграції і версіонування БД

  • EF Core migrations
  • Data seeding
  • Breaking vs non-breaking changes
  • Zero-downtime deployment
  • Rollback стратегія

🧪 8. Робота з великими обсягами даних

  • Pagination (OFFSET vs keyset pagination)
  • Batch processing
  • Bulk operations (і обмеження EF Core)
  • Streaming (IAsyncEnumerable)

🧩 9. Кешування

  • In-memory cache
  • Distributed cache (Redis)
  • Cache aside / write-through / write-behind
  • Cache invalidation
  • Stale data і consistency

🟥 10. NoSQL

MongoDB

  • Schema design (embed vs reference)
  • Indexing (TTL, compound)
  • Aggregation pipeline
  • Коли краще за SQL

Redis

  • Типи даних (string, hash, list, set)
  • TTL
  • Pub/Sub
  • Distributed locks
  • Cache eviction policies

⚖️ 11. MSSQL vs PostgreSQL

  • MVCC (PostgreSQL) vs locking (MSSQL)
  • Indexing differences
  • JSON support
  • Query optimizer особливості
  • Extensions (PostgreSQL)
  • Tooling
  • Коли що обирати (реальні кейси)

🔐 12. Безпека даних

  • SQL Injection
  • Parameterized queries
  • Encryption (at rest / in transit)
  • Data masking

🔥 13. Практичні проблеми

  • N+1 і як його знайти/виправити
  • Чому запит повільний (і як це довести)
  • Чому EF Core генерує повільний SQL і як це виправити
  • Коли краще писати raw SQL замість LINQ?
  • Як оптимізувати read-heavy систему
  • Як будувати write-heavy систему
  • Як працювати з high concurrency
  • Як реалізувати кешування без “битих” даних?
  • Як зробити zero-downtime міграцію?

Самостоятельный отпуск Опыт заказа вывоза мусора в Киеве Магія зміни: Від ночі до дня
Магія Вечірнього Неба: Відлякуйте втомленість дня і зануртеся у світ загадок і краси Якби Росія була людиною, то як би її описав психіатр?