Базы данных и транзакции
1. Что такое транзакция в контексте баз данных, и для чего она нужна?
2. Можно ли выполнить запрос SELECT к базе данных без явного открытия транзакции?
3. Чем отличается уровень изоляции транзакций Read-Committed от Repeatable Read, и в каких случаях это проявляется?
4. Как уровень изоляции транзакций влияет на ошибки в реализации, например, при конкурентных изменениях данных?
Индексы
5. Какие преимущества и недостатки использования индексов в реляционных базах данных?
6. Почему добавление большого количества индексов может замедлить операции записи?
7. Чем отличаются системы OLTP и OLAP в контексте использования индексов?
8. Какие типы индексов вы использовали, и для каких задач они применялись?
9. Какова сложность поиска, вставки и удаления в хэш-индексах, если рассматривать их как хэш-таблицы?
10. Какие существуют способы разрешения коллизий в хэш-индексах?
ORM и архитектура
11. Какие возможности ORM (например, Django ORM или SQLAlchemy) вы использовали для работы с базами данных?
12. Какие преимущества и недостатки использования моделей, связанных с базой данных, по сравнению с использованием DTO и маппинга?
Тестирование
13. Какие виды тестирования (юнит, интеграционное, функциональное) вы применяли, и как бы вы расположили их по количеству тестов в проекте?
14. Почему юнит-тесты обычно составляют основу пирамиды тестирования, и какие сценарии они покрывают?
Операционные системы
15. Чем отличается процесс от потока на уровне операционной системы в плане памяти и взаимодействия?
16. Какие механизмы операционной системы можно использовать для передачи данных между процессами (без учета баз данных)?
17. Приведет ли использование потоков операционной системы к ускорению вычислений для CPU-интенсивных задач, и почему?
18. Как влияет наличие нескольких процессоров или ядер на производительность потоков при выполнении CPU-интенсивных задач?