Разработчик компилляторов с 7-ю годами опыта свитчнулся в ВЕБ-разработку на Python? / Мок собес

13 подписчиков

12+
12+

3 дня назад

ПожаловатьсяНарушение авторских прав

13 подписчиков

12+
12+

3 дня назад

ПожаловатьсяНарушение авторских прав
12+
12+

3 дня назад

*** 📡 Записаться на тестовый (мок) собес: https://t.ly/lXoVH ✒️ Собесы, интервью: https://www.youtube.com/channel/UCqBjVBtycn69Gq1iTE_l93Q/playlists/playlists ❗️ВАЖНО! Данное собеседование является тестовым (mock). Записаться на мок-собеседование: https://t.ly/lXoVH *** ✉️ Связь с автором канала - python.mentor.by@gmail.com *** Тайм коды: -- Опыт кандидата и архитектура проекта 0:00 НАЧАЛО. 2:05 Разбор пункта из резюме: внедрение "best practices", чистой архитектуры и SOLID для минимизации технического долга. 5:48 Теоретический вопрос: насколько реализованная архитектура соответствует каноничной "Чистой архитектуре" Роберта Мартина или это ближе к луковой (Onion) архитектуре. -- Паттерны проектирования (SOLID и DI) 9:49 Как на практике применять принципы SOLID и проверять свой код. 10:45 Разбор Single Responsibility Principle (SRP): по каким критериям понять, что класс берет на себя слишком много обязанностей. 12:11 Уточнение от собеседующего: почему SRP — это не просто про дробление методов, а про связь кода с "акторами" (стейкхолдерами). 16:31 Как реализуется Dependency Inversion Principle (DIP): работа с IoC-контейнерами. 17:46 Размышления кандидата о том, как написать IoC-контейнер своими руками (через словари связей и аннотации типов). 21:48 Обсуждение Middleware: почему это не лучшее место для инъекции зависимостей. 24:02 Почему встроенный механизм инъекции зависимостей `Depends` в FastAPI подвергается критике (жесткая привязка к фреймворку и слою представления). 27:05 Теоретический нюанс DIP: что именно инвертируется (направление потока управления относительно направления зависимости в исходном коде). -- System Design и оптимизация производительности 29:07 Обсуждение опыта оптимизации инфраструктуры (сокращение расходов на диски и память на 45%). 30:59 Как искать "узкое горлышко", если проблема производительности кроется не в БД, а в программном коде. 34:46 Архитектурная задача: как спроектировать обработку тяжелых данных, чтобы сервер не отваливался по таймауту. 36:10 Решение кандидата: классическая схема с брокером сообщений (или базой данных), фоновыми воркерами и асинхронным поллингом статуса. 37:51 Усложнение задачи: как отдать результат работы "часового" отчета пользователю всего за 5 секунд. 42:02 Важность уточнения бизнес-требований на собеседовании перед проектированием системы. 43:01 Правильный ответ на задачу: использование планировщика для фоновой предварительной генерации отчетов и отдача закэшированных (пусть и слегка неактуальных) данных. -- Архитектура баз данных 45:43 Вопрос по стеку: зачем тащить в проект ClickHouse, если уже используется PostgreSQL. 48:14 Специфика ClickHouse: колоночная СУБД, заточенная под быструю работу с временными рядами и аналитикой. -- Безопасность (Аутентификация и Авторизация) 52:16 Определение терминов: в чем разница между аутентификацией и авторизацией. 56:44 Работа с JWT: зачем используются два разных токена (Access и Refresh) и почему Access-токен делают короткоживущим. 57:53 Где именно на фронтенде (в браузере) нужно хранить каждый из токенов. 1:00:17 Безопасность: почему Refresh-токен нельзя хранить в LocalStorage и как его защитить от XSS-атак с помощью кук (HttpOnly, Secure, SameSite). 1:01:48 Задача: как сделать так, чтобы при логауте пользователя в одной вкладке, он автоматически вылогинивался из всех остальных открытых вкладок браузера. 1:06:05 Как правильно реализовать инвалидацию (отзыв) Refresh-токенов на стороне бэкенда через базу данных. -- Проектирование сложной ролевой модели (RBAC) в БД 1:07:24 Задача: спроектировать гибкую модель прав доступа (Role-Based Access Control) на уровне таблиц базы данных. 1:12:53 Почему хранение данных в виде массивов внутри ячеек БД нарушает первую нормальную форму. 1:14:38 Решение: реализация связей "Многие ко многим" (Many-to-Many) с помощью промежуточных Junction-таблиц. 1:18:04 Оптимизация сложных проверок с помощью кэширования в Redis или материализованных представлений (Materialized Views). 1:19:34 Как сбрасывать/инвалидировать кэш материализованного представления с помощью триггеров в БД при изменении прав пользователя. -- Инфраструктура, деплой и CI/CD 1:23:20 Процесс выкатки приложения и наката миграций базы данных. 1:24:17 Проблема: что будет, если 10-100 инстансов приложения при масштабировании одновременно попытаются выполнить одну и ту же миграцию БД. 1:28:05 Деплой без даунтайма: концепция Blue-Green Deployment. 1:30:11 Best practice от собеседующего: использование распределенных блокировок на уровне PostgreSQL (Advisory Locks) для сериализации миграций. 1:34:24 Проектирование идеального CI/CD пайплайна. 1:38:19 Автоматические проверки безопасности кода и уязвимостей пакетов (SAST) в пайплайне. 1:40:44 Что делать на стадии CD, если выкатка ломается: ручные/автоматические откаты контейнеров и даунгрейд миграций (Alembic downgrade). 1:42:56 Завершение и ФИДБЕК.

Название:

Разработчик компилляторов с 7-ю годами опыта свитчнулся в ВЕБ-разработку на Python? / Мок собес

Категория:

Разное