Interview Lab
Interview Lab
@InterviewLabPro

вопрос дня: где поставить паузу в воркере, если вы рендерите трейс машины Тьюринга?

вопрос дня: где поставить паузу в воркере, если вы рендерите трейс машины Тьюринга?

Звучит как мелочь, а на собесе это уже вопрос про контракт системы: что обещает движок, что обещает UI, и кто за что отвечает.

3 шага, как я бы отвечал:

1) Сначала фиксируете семантику
Это не кнопка «Pause». Это регулярная задержка между итерациями, чтобы UI успевал показать шаги. Значит, пауза — часть исполнения, а не внешний стоп-сигнал.

2) Потом ищете точку, где не ломается состояние
Если остановить слишком рано — получите полушаг, грязное состояние и кривой трейс.
Если слишком поздно — UI уже не контролирует темп.
Нужна точка после завершения шага, когда состояние машины уже консистентно.

3) И только потом проектируете протокол
Воркер должен сообщать: «шаг завершён, вот новое состояние, жду следующего тика».
Основной поток должен понимать это как ритм, а не как хаос событий.

Хороший ответ на собесе звучит так:
«Пауза живёт на границе шага, после фиксации состояния, потому что она одновременно определяет поведение движка и формат сообщений между потоками».

Плохой ответ:
«Ну, где удобнее через setTimeout».
Это уже не дизайн, а случайность.

Если хотите, пришлю чеклист, как разбирать такие задачи на system design и live coding без паники.
Этот пост опубликован в Telegram-канале Interview Lab. Подписаться можно по ссылке: @InterviewLabPro.
jobs

Свежие посты в категории «Jobs & Careers»

Все каналы категории →

start

Готовы запустить рекламу через сеть public.tg?

Новый оффер, продукт, GEO, кейс, событие или партнёрский запуск — соберём маршрут под задачу и отдадим медиаплан.

Telegram для медиаплана: @AFFtop_connect. Быстрый тест: $20 за канал, $1000 за пакет по сети.