Помидорный снайпер против Lazy Query
Рабочая история о том, как разбивать скучные задачи на короткие интервалы, замечать отвлечения и поддерживать видимый прогресс.
Инженерные практикиМакс задумчиво крутил в руках мышку, уставившись в экран. Перед ним висела задача из разряда «нужно проверить лог, поправить конфиг и закрыть тикет». Но руки будто не подчинялись.
«Почему я готов распутывать истории с deadlock’ами, оптимизировать тормозящие запросы и даже разбираться с чужим кривым кодом — но вот это… это просто убивает?»
В рабочем мессенджере всплыло сообщение:
Артём:
— Макс, ты с тем конфигом разобрался? он нам нужен.
Макс вздохнул и честно написал:
— Нет. Я его открыл, потом полез в доку, потом… в общем, ещё не начинал.
Артём усмехнулся (Макс почувствовал это через экран).
— А если бы там был баг, роняющий продакшн — уже бы сделал?
— Конечно! — Макс даже обиделся. — Там же вызов! А это… ну, скукота.
— Вот и вся проблема, — написал Артём. — Ты ждёшь, что работа будет сплошным квестом. Но так не бывает. Даже в самых крутых проектах есть рутина.
Макс хотел возразить, но вдруг осознал: да, он действительно верил, что где-то есть такие места, где задачи только сложные и интересные. А скучных нет.
— Ладно, — сдался он. — А как ты справляешься? Ты же всё успеваешь.
— Я слежу за собственными задачами, как ты за базой, — ответил Артём и через минуту прислал запрос:
-- блокировки реальной жизниSELECT t.task_id AS "Что ДЕЛАТЬ надо", t.priority, d.distraction AS "Что ДЕЛАЮ вместо", d.blocking_time AS "Уже потеряно"FROM real_tasks tJOIN distractions d ON t.progress = 1WHERE d.blocking_time > interval '10 min'ORDER BY t.priority DESC, d.blocking_time DESC;— Смотришь на запрос, — продолжил Артем, — и kill -9.
— Предлагаешь kill -9 самому себе? — улыбнулся Макс.
— Ты нам ещё нужен. kill -9 — блокирующим транзакциям: мемам, соцсетям или чему там ещё. Буквально четыре важных шага:
1. Три главные задачи в день
Всё остальное — фоновые процессы, как autovacuum.
2. Разбивай задачи на небольшие подзадачи
Каждая подзадача — на 20–30 минут работы. Так проще отмечать прогресс и не терять мотивацию.
3. Ставь таймер
Основной — на 25 минут, как в технике «помидор». Дополнительный — на десятую минуту: если к этому времени прогресса нет, пора понять, что тебя блокирует, и убрать отвлечение.
4. Делай перерывы
Перерывы — лёгкие SELECT: кофе, прогулка, мемы. Не начинай в это время новые задачи, чтобы не открывать лишние транзакции в голове.
Макс запустил в терминале две команды:
$( sleep 600 && echo "Есть прогресс?" ) &
$( sleep 1500 && echo "Перерыв" ) &К 9-й минуте он реально уже правил конфиг. «Прогресс есть — alarm10 отменяется». К 14-й минуте нашёл кривой путь к логам. Когда таймер пискнул, раздел global settings уже был готов.
Во втором «помидоре» Макс обновил доку, прогнал тесты и закрыл тикет. На часах было 14:05.
Попробуйте следить за задачами, как за зависшими запросами. Нет прогресса за десять минут — ищите блокировку между вами и дедлайном.