🤔 Почему Django-разработчики валятся на архитектуре? / Техсобес Middle Python Developer / Mock
*** 💡Ламповое комьюнити питонистов в Telegram: https://t.me/pymentor ✈️ Дорожная карта по изучению Python: https://pymentor.org 📡 Записаться на тестовый (мок) собес: https://t.ly/lXoVH ✒️ Собесы, интервью: https://www.youtube.com/@pymentor_by/playlists ❗️ВАЖНО! Данное собеседование является тестовым (mock). Записаться на мок-собеседование: https://t.ly/lXoVH *** ✉️ Связь с автором канала - python.mentor.by@gmail.com *** Тайм коды: --- Знакомство и бэкграунд - 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 #собеседование #открытоесобеседование #моксобеседование
Название:
🤔 Почему Django-разработчики валятся на архитектуре? / Техсобес Middle Python Developer / Mock
Категория:
Разное