JuniorPython Developer > Основы Python > Итераторы и генераторы
Короткий ответ yield приостанавливает выполнение функции и возвращает значение вызывающему коду, сохраняя локальное состояние; StopIteration поднимается автоматически, когда выполнение генератора доходит до конца функции. Как это работает подробнее При первом next() код выполняется до первого yield, значение возвращается, а состояние (локальные переменные, точка выполнения) замораживается. Следующий next() продолжает выполнение сразу после yield. Когда функция завершается, генератор поднимает StopIteration. Пример кода Что использовать на практике Практика. for-циклы и конструкции типа list(), sum() сами перехватывают StopIteration — явно ловить его вручную нужно только при ручной работе с next(). Значение из return внутри генератора попадает в атрибут value объекта StopIteration и используется редко, в основном при делегировании через yield from. Подводные камни Риски. Вызывают next() вручную после исчерпания генератора без try/except; путают return внутри генератора с обычным return, думая, что он возвращае
generatorsiterators
JuniorData Analyst > SQL и данные > Python для анализа данных
Короткий ответ subset указывает, по каким столбцам искать дубликаты, что критично, когда дубликатом нужно считать совпадение бизнес-ключа (например, order_id), а не полное совпадение всех столбцов. Как это работает подробнее без subset drop_duplicates сравнивает все столбцы, и строки, отличающиеся хотя бы в одном поле, не считаются дубликатами; с subset=['order_id'] сравнение идёт только по указанным столбцам, и строки с одинаковым order_id, но разными прочими полями, всё равно будут признаны дубликатами. Пример кода Что использовать на практике На практике: если order_id должен быть уникальным, но у одной записи обновилось, например, поле status, полное сравнение строк не найдёт дубликат — нужен subset по бизнес-ключу; важно явно решить, какую версию оставить (keep='last' для самой свежей, если есть временная метка). Проверка: итоговая таблица содержит по одной строке на order_id, причём для order_id=1 остаётся строка со статусом 'paid' как последняя по порядку в данных. Подводные камни Частые ошибки: провер
business-keydrop-duplicates
JuniorDevOps Engineer > Контейнеры и доставка > Infrastructure as Code и управление конфигурацией
Короткий ответ --check выполняет playbook в "сухом" режиме, показывая, какие задачи считались бы changed, без реального применения изменений, а --diff дополнительно показывает построчное различие для изменяемых файлов/шаблонов; точность ограничена тем, что не все модули полностью поддерживают check mode, а некоторые задачи зависят от результата предыдущих (ещё не реально выполненных) задач. Как это работает подробнее в check mode каждый модуль, поддерживающий этот режим, выполняет только проверку текущего состояния системы и сравнение с желаемым, не выполняя реального изменения; модули без явной поддержки check mode либо пропускаются, либо могут вести себя непредсказуемо. Пример кода Что использовать на практике Практика. --check --diff используют как предварительный просмотр перед применением playbook к продовым серверам, аналогично terraform plan; это особенно полезно перед массовым раскатом изменений конфигурации на большую группу хостов. Подводные камни Ошибка. полностью доверять check mode для playbook с
ansibleconfiguration-management
MiddlePerformance Marketer > Google Ads > Устойчивость результатов и управление рисками
Короткий ответ Зафиксируйте причину и материалы блокировки, уведомите клиента и подайте официальную апелляцию. Параллельно оцените рабочий резервный канал, но не создавайте новый аккаунт на тех же данных в попытке обойти санкцию. Как это работает подробнее Причина обычно отображается в Account Quality или Policy Center. Рассмотрение апелляции может занять от часов до недель, поэтому нельзя обещать быстрое восстановление; запасной канал должен быть подготовлен заранее. Что использовать на практике В первые часы сохраните скриншоты причины блокировки и сообщите клиенту. В течение 2–6 часов подайте апелляцию с фактами и материалами креативов или лендинга. В первые сутки активируйте поддерживаемый резервный канал, а за 48 часов зафиксируйте статус апелляции и план на случай отказа. Подводные камни Создание аккаунта на том же домене и платёжных данных может привести к новой блокировке, в том числе домена, и ухудшить шансы на восстановление. Не обещайте срок разблокировки, который не контролирует команда.
account-qualityaccount-suspension
JuniorSMM Manager > Общее > Публикация и кампании
Короткий ответ Сначала нужно проверить уведомление об ошибке в сервисе автопостинга (часто это истёкший токен доступа или нарушение формата), затем оперативно опубликовать пост вручную, если время публикации критично, и после этого устранить причину сбоя. Как это работает подробнее сервисы автопостинга обычно присылают письмо или уведомление в интерфейсе с кодом и причиной ошибки — например, «токен недействителен», «формат файла не поддерживается» или «превышен лимит запросов к API площадки». Что использовать на практике На практике. если публикация привязана к конкретному времени (анонс мероприятия, старт акции), важно иметь план Б — доступ к аккаунту напрямую для ручной публикации; если время не критично, можно просто перепланировать пост после устранения причины. Пример. Сервис показывает ошибку «Токен доступа Instagram истёк». Менеджер переподключает аккаунт, публикует пост вручную через 10 минут после пропущенного времени и ставит задачу проверять статус токенов каждую неделю. Проверка: пост опубликован,
content-schedulingincident-response
JuniorPerformance Marketer > Google Ads > Тестирование гипотез и запуск изменений
Короткий ответ Если отставание большое и устойчивое при достаточном объёме показов, тест можно завершить досрочно и откатиться на контрольный вариант, не дожидаясь формальной статистической значимости, чтобы не тратить бюджет впустую. Как это работает подробнее Решение о досрочной остановке «плохого» варианта асимметрично решению об объявлении «победителя»: защититься от явных убытков можно раньше, так как цена ошибки здесь — потерянный бюджет, а не ложный вывод о новом стандарте. Такая асимметрия логична с точки зрения управления риском: ошибочно остановленный хороший вариант можно перезапустить позже, а бюджет, потраченный на явно слабый вариант, уже не вернуть. Пример. Вариант B за первые 2 дня получил 2000 показов, 5 кликов (CTR 0.25%) против CTR 2% у контроля при схожем объёме — явное и большое отставание, оправдывающее приостановку варианта B для проверки причин. Что использовать на практике Практика. Перед остановкой стоит проверить, не связано ли отставание с технической проблемой (ошибка модерации, н
ab-testingad-creatives
MiddlePython Developer > Основы Python > Исключения и контекстные менеджеры
Короткий ответ Внутри блока except для повторного возбуждения того же исключения используют raise без аргументов: сначала выполняют свои действия, например логирование, затем передают ошибку дальше. Такой raise сохраняет исходный traceback и работает только в обработчике. Как это работает подробнее Приём полезен, когда на одном уровне нужно залогировать ошибку или дополнить контекст, а окончательное решение об обработке принимает внешний код. Голый raise. Повторно возбуждает именно текущее исключение, поэтому работает только внутри блока except. Сохранение traceback. В отличие от raise с новым исключением, исходная цепочка вызовов сохраняется целиком. Ошибка вне except. Использовать голый raise вне обработчика нельзя: возбуждать текущее исключение нечего, и интерпретатор выдаст ошибку. Сцепление исключений. Для замены одного исключения другим с указанием причины пишут raise новое_исключение from старое_исключение. Пример кода Что использовать на практике Логирование. Записывай ошибку в обработчике и пробрасыв
error-handlingexceptions
JuniorSMM Manager > Общее > Публикация и кампании
Короткий ответ Нужно убедиться, что проблема действительно на стороне площадки (проверить статус сервиса или новости), не пытаться многократно повторно публиковать пост, а перепланировать публикацию на момент восстановления работы и, если время публикации было критично, предупредить заинтересованные стороны о задержке. Как это работает подробнее у крупных площадок случаются временные сбои (недоступность API, ошибки загрузки медиа), которые обычно решаются сами в течение короткого времени; попытки опубликовать пост во время сбоя часто приводят к ошибкам или дублированию публикации после восстановления. Что использовать на практике На практике. для не критичных по времени постов достаточно просто перенести публикацию на более позднее время; для критичных по времени (анонс старта продаж, мероприятие) стоит иметь резервный канал информирования аудитории (например, другая площадка или рассылка), чтобы не терять эффект от тайминга. Пример. Instagram не загружает видео из-за сбоя. Менеджер проверяет статус на сторон
content-schedulingincident-response
JuniorSMM Manager > Общее > Репутация и кризис-коммуникации
Короткий ответ Нужно вежливо и фактически точно указать на несоответствие, подтвердив его проверяемыми данными, не обвиняя пользователя в некомпетентности, и предложить решение, если за ошибкой всё же стоит реальная проблема. Как это работает подробнее публичное указание на ошибку пользователя без уважительного тона часто выглядит как попытка бренда «отбиться» от критики, даже если формально бренд прав по фактам. Отзыв на товар бренда «УютДиван»: «Диван заявлен как 200 см, а по факту 180 см!». После проверки по номеру заказа выясняется, что куплена другая, более компактная модель линейки. Ответ: «Уточнили по заказу — это модель X, её заявленная длина 180 см, параметры 200 см указаны у модели Y, уточним характеристики в карточке, если это сбивает с толку». Проверка: отзыв получает уточняющий ответ продавца, карточка товара при необходимости обновляется. Что использовать на практике Практический подход. стоит сначала уточнить детали заказа в приватном канале, чтобы убедиться, что ошибка действительно в отзыве,
community-managementcrisis-communications
MiddlePerformance Marketer > Google Ads > Взаимодействие с командами и бизнес-практики
Короткий ответ Сначала локализуйте причину: сопоставьте начало падения конверсии с журналом релизов и проверьте путь пользователя, формы и события аналитики. После срочного исправления или отката зафиксируйте процесс, который уведомляет маркетинг до релизов, влияющих на кампании. Как это работает подробнее Сравните данные рекламных кампаний, GA4 или CRM с временем выкладки. Проверьте, открывается ли целевой URL, работает ли форма и передаются ли события конверсии через GTM. Совпадение по времени указывает на возможную связь, но первопричину нужно подтвердить проверкой сайта и трекинга. Диагностика. Зафиксировать время начала просадки, затронутые кампании и страницы, затем воспроизвести целевое действие и проверить события. Восстановление. Передать команде конкретные данные и оценить, безопаснее ли быстро исправить дефект или откатить релиз. Профилактика. Включить в процесс релиза предварительное уведомление и проверку критичных форм, URL и событий на тестовом окружении. Что использовать на практике Оформить и
conversion-trackingdeployment