Подборка объединяет вопросы, отмеченные на этапах интервью в СКАИД. Здесь можно понять структуру технической проверки и заранее повторить связанные темы. В подборке чаще встречаются темы: backend, database, async.
на больших таблицах с частыми операциями insert/update/delete, поскольку обновление индексов создаёт дополнительные накладные расходы в запросах, фильтрующих по низкораспределённым или часто повторяющимся значениям,…
Для выполнения SQL JOIN наличие внешнего ключа не является обязательным условием Соединение выполняется по условию совпадения значений в выбранных столбцах Внешний ключ поддерживает целостность данных, однако не…
Корутина — лёгкая функция, которую можно приостанавливать и возобновлять; она реализует кооперативную многозадачность Таск (Task) — абстракция работы, способной выполняться асинхронно; для этого он часто использует…
Подходы к переиспользованию методов одного класса в другом Наследование: производный класс получает публичные и защищённые методы родителя, а затем может расширять или переопределять их поведение. Композиция: один…
Как работает asyncio.gather? функция стандартной библиотеки asyncio для Python получает несколько корутин либо awaitable-объектов выполняет их конкурентно, не блокируя основной поток формирует одну корутину, ожидающую…
Что означает вытесняющая многозадачность? способ планирования процессов в ОС операционная система самостоятельно переключает задачи текущая задача прерывается по таймеру или с учетом приоритета обеспечивает…
Как устроен сборщик мусора в Python? управление памятью основано на подсчёте ссылок (reference counting) для каждого объекта ведётся счётчик ссылок; когда он становится равен 0, объект удаляется освобождение памяти…
Аналитика и оптимизация запросов Подбирать подходящие индексы — B-tree, GIN или GiST — для ускорения выборок Использовать партиционирование для таблиц с диапазонными и временными данными Применять материализованные…
Способы организации конкурентного выполнения в Python Потоки (threading): обеспечивают выполнение на уровне потоков ОС и особенно полезны в задачах с большим объёмом I/O; однако GIL ограничивает их эффективность при…
Наследование и композиция: что обеспечивает большую гибкость кода? наследование: тесная связь и фиксированная иерархия композиция: гибкое объединение объектов из отдельных компонентов наследование трудно изменять…
Чем отличаются git rebase и git merge Git merge объединяет ветки и создаёт merge commit Git rebase перестраивает историю, перенося коммиты на новую базу Merge оставляет всю историю ветвления Rebase формирует линейную…
Команда Git для выбора отдельных коммитов переносит конкретный коммит из другой ветки применяет содержащиеся в нём изменения к текущей ветке обрабатывает отдельные изменения, а не выполняет полное слияние подходит для…