***
💡Ламповое комьюнити питонистов в Telegram: https://t.me/pymentor
✈️ Дорожная карта по изучению Python: https://pymentor.org
📡 Записаться на тестовый (мок) собес: https://t.ly/lXoVH
✒️ Собесы, интервью: / @pymentor_by
❗️ВАЖНО! Данное собеседование является тестовым (mock). Записаться на мок-собеседование: https://t.ly/lXoVH
***
✉️ Связь с автором канала - [email protected]
***
Тайм коды:
--- Знакомство и бэкграунд
0:00 — Приветствие и представление участников.
0:24 — Михаил рассказывает о своем опыте: Django-бэкграунд и перерыв в программировании на один год.
2:03 — Обсуждение масштаба прошлых проектов и командной работы.
--- Архитектура и масштабирование
3:09 — Что такое «архитектурные основы» для масштабирования проекта?
5:46 — Разделение понятий: масштабирование нагрузки (реплики) vs масштабирование функционала (расширение кода).
8:31 — Состояние приложения: Stateful против **Stateless**. Почему для горизонтального масштабирования важен Stateless-подход.
10:11 — Пример проблемы масштабирования: хранение данных в рантайме (словаре) при наличии балансировщика.
12:44 — Проблема масштабирования протокола WebSocket (липкие сессии).
--- Работа с базами данных и блокировки
13:55 — Конкурентный доступ к БД: Race condition при работе нескольких инстансов.
14:46 — Блокировки в Django: транзакции и атомарность.
15:10 — Оптимистическая vs Пессимистическая блокировки: когда и что выбирать.
17:35 — Кейс: инкремент значения в транзакции с уровнем изоляции **Serializable**.
21:58 — Как обрабатывать конфликты снапшотов: механизм Retry (повторные попытки).
28:02 — Почему нужно ретраить всю бизнес-транзакцию, а не только вызов `commit`.
--- Python Core и ООП дизайн
30:33 — Принципы построения расширяемой архитектуры: уход от «толстых моделей» Django.
31:10 — Сервисный слой и его роль в бизнес-логике.
34:03 — Теория «Луковой архитектуры» (Onion Architecture).
36:09 — OOP Design: как проектировать классы для безболезненного добавления функционала.
40:51 — Паттерны проектирования: Стратегия, Строитель, Фабрика.
42:32 — Проблемы глубокой иерархии наследования.
52:06 — Что такое интерфейсы в Python: контракты на действие, протоколы и абстрактные классы.
58:23 — Принцип сегрегации интерфейса (Interface Segregation Principle из SOLID).
--- Типизация и внутреннее устройство Python
1:00:40 — Система типов в Python: строгая динамическая типизация.
1:02:56 — Зачем нужны **Type Hints**, если код работает и без них?
1:07:15 — Data Classes vs Pydantic: кейсы применения и валидация данных.
1:09:37 — Как устроен словарь (`dict`) внутри: хэш-таблицы и коллизии.
1:14:01 — Отличия `list` от `tuple`: изменяемость и особенности аннотации (Ellipsis `...`).
1:17:43 — Итераторы и генераторы: отличия, сохранение состояния и методы `next` / `yield`.
1:23:45 — Задача на типизацию универсального класса «Калькулятор» (Union types, Overload, Generics).
1:35:52 — Множественное наследование и порядок разрешения методов (**MRO / C3-линеаризация**).
--- Фидбек и итоги
1:42:14 — Развернутый фидбек от Артёма: «вода» в ответах, важность конкретики и примеры из практики.
1:45:13 — Почему фраза «я это не трогал, это делали DevOps» является «красным флагом» (Red Flag).
1:51:05 — Дополнительный фидбек от Максима: рекомендации по подготовке к вопросам по MRO и асинхронности.
1:56:04 — Заключительное слово кандидата и благодарность.
***
Теги:
#python #pythondeveloper #собеседование #открытоесобеседование #моксобеседование