🤔 Почему Django-разработчики валятся на архитектуре? / Техсобес Middle Python Developer / Mock

Опубликовано: 20 Июль 2026
на канале: Python Mentor
1,723
33

***

💡Ламповое комьюнити питонистов в 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 #собеседование #открытоесобеседование #моксобеседование