JuniorPython Developer > Основы Python > Flask
Короткий ответ Blueprint — это способ сгруппировать связанные маршруты, шаблоны и статику в отдельный модуль, который затем регистрируется в основном приложении через register_blueprint. Как это работает подробнее Blueprint создаётся как отдельный объект (Blueprint('name', __name__)), к нему привязываются маршруты через @bp.route(...), как и к обычному app. Сам Blueprint не является приложением — он «встраивается» в реальное Flask-приложение вызовом app.register_blueprint(bp, url_prefix=...). Пример кода Что использовать на практике Практика. Blueprint удобен для разделения кода на логические модули (например, auth, users, orders) в проектах среднего и большого размера, вместо того чтобы держать все маршруты в одном файле app.py. Подводные камни Риск. Забывают зарегистрировать Blueprint в приложении (register_blueprint), из-за чего маршруты «не существуют»; дублируют один и тот же url_prefix для разных Blueprint, что приводит к конфликтам маршрутов.
blueprintsdatabase
JuniorData Analyst > SQL и данные > Python для анализа данных
Короткий ответ Broadcasting — это механизм NumPy, который позволяет выполнять поэлементные операции между массивами разной формы, автоматически «растягивая» меньший массив без физического копирования данных. Как это работает подробнее NumPy сравнивает формы массивов справа налево; если размерность равна 1 или отсутствует, она расширяется до нужного размера виртуально, без копирования памяти, и только затем выполняется поэлементная операция. Пример кода Что использовать на практике На практике: broadcasting удобен для операций вида "вычесть среднее по столбцу из каждой строки" или "умножить таблицу на вектор коэффициентов"; это избавляет от явных циклов и ускоряет вычисления на больших массивах. Проверка: col_mean имеет форму (3,), а вычитание из матрицы формы (2,3) работает благодаря broadcasting построчно; сумма centered по каждому столбцу должна быть близка к нулю. Подводные камни Частые ошибки: путают формы массивов и получают не ту ось broadcasting (например, вычитают построчно вместо постолбцового средне
arraysbroadcasting
MiddleDevOps Engineer > Контейнеры и доставка > Надёжность и инцидент-менеджмент
Короткий ответ Burn rate — это скорость, с которой расходуется error budget относительно равномерного темпа за весь период SLO; алерт на быстрое сгорание (fast burn, например, весь месячный бюджет будет исчерпан за несколько часов при текущей скорости) требует немедленной реакции, а алерт на медленное сгорание (slow burn, бюджет будет исчерпан за несколько дней) можно обрабатывать в рабочем порядке. Как это работает подробнее если SLO 99.9% за 30 дней, равномерный расход бюджета означает, что за 1 час должно "тратиться" около 1/720 месячного бюджета; burn rate = 1 означает именно такой равномерный темп, burn rate = 10 означает, что при таком темпе месячный бюджет будет исчерпан за 3 дня вместо 30 — именно множитель burn rate, а не абсолютное значение доли ошибок, определяет срочность реакции. Пример / кейс Ожидаемое поведение: алерт срабатывает только при устойчиво высоком burn rate на обоих окнах одновременно, что отличает реальную быструю деградацию (требующую немедленного реагирования on-call) от короткого
alertingburn-rate
JuniorJava Developer > Java Core > JVM и память
Короткий ответ Байт-код — это промежуточное представление Java-программы: набор инструкций не для конкретного процессора, а для абстрактной вычислительной машины — JVM. Компилятор javac превращает исходный файл Hello.java в файл Hello.class, внутри которого и находится байт-код. Как это работает подробнее Байт-код компактнее исходного текста и уже содержит результат синтаксического и семантического анализа, но машинным кодом ещё не является — его исполняет JVM. Интерпретация и JIT. JVM либо интерпретирует байт-код, либо компилирует часто исполняемые участки в машинный код с помощью JIT-компилятора (Just-In-Time), что ускоряет выполнение. Связующее звено. Программу компилируют в байт-код один раз, а дальше каждая реализация JVM сама решает, как исполнить его на своей платформе. Пример кода Что использовать на практике Помнить, что результатом javac всегда является .class-файл с байт-кодом. Использовать javap -c, чтобы посмотреть реальные инструкции байт-кода. Рассматривать байт-код как единицу переносимости: о
bytecodeclass-file
JuniorData Analyst > SQL и данные > Продуктовые и бизнес-метрики
Короткий ответ CAC (Customer Acquisition Cost) — средние затраты на привлечение одного нового клиента, считается как сумма расходов на привлечение за период, делённая на число новых привлечённых клиентов за этот же период. Как это работает подробнее в числитель обычно включают расходы на рекламу, маркетинговые кампании, иногда зарплаты маркетинга/продаж; в знаменатель — число новых клиентов, привлечённых этими расходами за выбранный период. Что использовать на практике Применение. нужно заранее договориться, что входит в расходы (только медиа-бюджет или ещё и зарплаты команды) и какой период атрибуции используется (день клика, день конверсии) — от этого методологического выбора сильно зависит итоговое число, и сравнивать CAC между компаниями без поправки на методологию некорректно. Проверка или пример. Проверка: сопоставить 2 000 руб с LTV — если LTV < CAC, юнит-экономика отрицательная. Подводные камни Частая ошибка. делят весь маркетинговый бюджет компании на всех новых пользователей без разбивки по каналам,
attributioncac
MiddleData Analyst > SQL и данные > Продуктовые и бизнес-метрики
Короткий ответ CAC payback period — время (обычно в месяцах), за которое накопленная маржинальная прибыль от клиента окупает затраты на его привлечение; считается как CAC, делённый на средний маржинальный доход на клиента за период (ARPU × margin). Как это работает подробнее payback = CAC / (ARPU_per_period × gross_margin); чем короче payback, тем быстрее компания возвращает вложенные в привлечение деньги и может реинвестировать их в дальнейший рост без привлечения дополнительного капитала. Пример кода Что использовать на практике Практика. payback period важнее, чем просто сравнение LTV и CAC, когда бизнес растёт быстро и ограничен в кэше — даже при LTV/CAC > 3 слишком долгий payback (например, 24+ месяцев) может создать кассовый разрыв; для разных индустрий есть ориентировочные бенчмарки (например, SaaS часто ориентируется на payback < 12 месяцев), но это не универсальное правило и зависит от доступа к капиталу и модели роста компании. Подводные камни Частые ошибки. считают payback по выручке, а не по марже
arpucac
JuniorDevOps Engineer > Контейнеры и доставка > Надёжность и инцидент-менеджмент
Короткий ответ Chaos engineering — это практика намеренного внесения контролируемых сбоев (отказ узла, задержка сети, недоступность зависимости) в систему, чтобы проверить гипотезы об её устойчивости до того, как аналогичный сбой случится сам по себе и застанет команду врасплох. Как это работает подробнее эксперимент начинают с гипотезы ("если упадёт одна реплика сервиса X, остальные должны выдержать нагрузку без роста ошибок"), затем вносят контролируемое воздействие с ограниченным радиусом (blast radius), наблюдают метрики и либо подтверждают гипотезу, либо находят слабое место. Пример / кейс Ожидаемое поведение: при здоровой архитектуре оставшиеся поды сервиса checkout принимают на себя нагрузку, доля ошибок и latency остаются в пределах SLO; рост ошибок выше нормы означает, что система не готова к потере даже одного инстанса. Пример кода Что использовать на практике Практический подход. Эксперименты начинают в тестовой среде, затем постепенно переносят в прод с минимальным blast radius (например, 1% трафи
chaos-engineeringdependency-management
JuniorData Analyst > SQL и данные > Продуктовые и бизнес-метрики
Короткий ответ Churn rate — доля пользователей (или подписчиков), активных на начало периода, которые перестали быть активными/отменили подписку к концу периода; считается как число ушедших, делённое на базу на начало периода. Как это работает подробнее фиксируем базу пользователей на начало месяца, затем проверяем, кто из них не проявил активности (или отменил подписку) в течение месяца; churn = ушедшие / база на начало. Что использовать на практике Применение. для подписочных продуктов churn обычно считают по факту отмены/неоплаты подписки, для продуктов с бесплатным использованием — по отсутствию активности N дней подряд; важно не включать в знаменатель новых пользователей, пришедших в этом же периоде. Проверка или пример. Данные: на 1 марта было 1000 активных подписчиков, к 1 апреля 60 из них отменили подписку (новые подписчики в расчёт не входят). Проверка: 6% в месяц соответствует ожидаемому годовому churn ≈ 1 - (1-0.06)^12 ≈ 51% при допущении постоянного месячного churn — такой sanity check помогает за
churnproduct-metrics
JuniorJava Developer > Java Core > Core Java
JVM исполняет байт-код, classpath указывает, где искать классы и ресурсы приложения.
BasicsJVM
JuniorPerformance Marketer > Google Ads > Данные, комплаенс и безопасность рекламных аккаунтов
Короткий ответ CMP — платформа управления согласием, которая показывает пользователю выбор по категориям cookies и передаёт этот статус рекламным тегам. При отказе маркетинговые теги не должны отправлять идентифицирующие данные. Как это работает подробнее CMP связывают с тегами через слой данных, Google Tag Manager или встроенный режим согласия платформы. В зависимости от разрешённых настроек тег блокируется или работает в ограниченном режиме. Проверка должна быть технической. В предпросмотре GTM или Tag Assistant убедитесь, что при отказе маркетинговый тег не срабатывает либо не передаёт идентификаторы. Что использовать на практике Протестируйте оба выбора. Проверьте поведение каждого тега после согласия и после отказа, а не только вид баннера. Подводные камни Баннер без интеграции не управляет сбором. Тег с триггером на все страницы может продолжать отправлять события независимо от решения пользователя.
cmpconsent