🚨 Пытаюсь пройти РЕАЛЬНЫЙ лайвкодинг в бигтех / Не смог переложить данные?!? / Опять фиаско?

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

12+
12+

1 просмотр

14 дней назад

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

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

12+
12+

1 просмотр

14 дней назад

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

1 просмотр

14 дней назад

*** 💡Ламповое комьюнити питонистов в Telegram: https://t.me/pymentor 📡 Записаться на тестовый (мок) собес: https://t.ly/lXoVH ✒️ Собесы, интервью, подкасты: https://www.youtube.com/@pymentor_by/playlists ✉️ Связь с автором канала - python.mentor.by@gmail.com *** Тайм коды: -- Введение и постановка задачи - 00:00:00 Организационные моменты и подготовка к интервью - 00:00:40 Вводная часть: суть задачи (ETL на минималках) - 00:01:10 Бизнес-контекст: получение заказов из Kafka в ClickHouse - 00:02:11 Проблема буферизации данных: сопоставление продюсера и консюмера - 00:03:16 Технические ограничения методов `Next`, `Commit` и `Process` -- Разбор формальных требований - 00:04:16 Переход к формальному описанию задачи - 00:05:07 ТЗ: реализация асинхронного метода `pipe` в `PipeProcessor` - 00:06:01 Свойства источника и обработка порядка подтверждений (`Commit`) - 00:06:53 Обсуждение асинхронной среды и порядка выполнения карутин - 00:08:06 Свойства потребителя (`Consumer`) и структура DTO `Result` - 00:10:00 Вопросы по качеству и улучшению кода - 00:11:10 Уточнение работы с батчами: наполнение против деления - 00:12:48 Изучение структуры тестов и стабов -- Анализ архитектуры и проектирование - 00:13:56 Выделение ключевых требований к алгоритму - 00:15:18 Выбор структур данных (Queue, AsyncIO, Semaphore, Timeout) - 00:16:34 Пошаговое проектирование функции `pipe` - 00:18:25 Ограничение ресурсов: обсуждение таймаутов и токенов отмены - 00:20:32 Совет от интервьюера: сфокусироваться на базовом решении - 00:21:35 Обсуждение паттернов вызова функции `pipe` в реальном коде -- Написание первой версии кода - 00:25:24 Создание структуры буфера и бесконечного цикла чтения - 00:28:02 Написание логики отправки данных в консюмер (`Flash buffer`) - 00:30:23 Продуктовый нюанс: проверка логики слайсинга/разрезания заказов - 00:32:44 Реализация обработки исключений и сохранение стейта для `Commit` - 00:36:52 Создание логики сброса стейта и фиксации прогресса в продюсере - 00:43:05 Попытки сделать код безопасным для конкурентности (`Lock`, `Semaphore`) -- Запуск и отладка тестов - 00:46:13 Написание тестового сценария с использованием стабов - 00:49:57 Первый запуск теста и устранение первичных ошибок с асинхронностью - 00:50:30 Обработка исключения `ProducerException` / остановки итератора - 00:51:58 Ошибка `AssertionError`: дебаг причин переполнения/недосдачи элементов - 00:56:37 Вынесение логики `flash` в отдельную функцию для обработки остатков -- Разбор ошибки («Алгоритм с огурцами») - 00:58:24 Анализ поведения буфера по итерациям и лимитам `MaxItems` - 01:03:36 Проблема некорректной проверки наполнения буфера - 01:06:41 Аналогия интервьюера про огурцы в банке (Ключ к решению) - 01:08:39 Обсуждение простейшего батчинга и склонности к переусложнению -- Ревью решения - 01:11:43 Разбор критических ошибок в коде: перехват исключений и принцип SRP - 01:13:19 Некорректная обработка `ProducerException` внутри логики процессора - 01:14:37 Как сокрытие исключений привело к логической ошибке с буфером - 01:15:10 Подведение итогов интервью *** #python #interview

Название:

🚨 Пытаюсь пройти РЕАЛЬНЫЙ лайвкодинг в бигтех / Не смог переложить данные?!? / Опять фиаско?

Категория:

Разное