Правленный сыр
2 апреля 2026 3 мин

Пет-проект, который никто не увидит

У меня есть проект. Он лежит в приватном репозитории, у него 214 коммитов и ноль пользователей. И, скорее всего, пользователей не будет никогда.

Это трекер цен на билеты до Калининграда.

Да, я в курсе, что такие сервисы уже есть. Штук десять, и все лучше моего. Один из них я даже использую по назначению, потому что мой падает раз в неделю, когда меняется вёрстка на сайте, откуда я тяну данные.

Но я всё равно его пишу.

Как это началось

Осенью я в очередной раз открыл поиск билетов, посмотрел на цены, закрыл. Через неделю открыл снова. Цена другая. Ещё через неделю снова другая, и я поймал себя на мысли, что не понимаю логику. Дорого в пятницу или в среду? За месяц или за три? Утренние дешевле?

Нормальный человек погуглил бы статью и успокоился. Я решил, что мне нужны свои данные.

Первая версия была скриптом на сорок строк, который раз в сутки лез за ценой и дописывал строчку в csv. Работал он на старом ноутбуке, который стоял на холодильнике, потому что больше некуда. Через две недели ноутбук ушёл в спящий режим, я этого не заметил, и в данных образовалась дыра. Так я узнал, зачем нужен мониторинг.

Что было дальше

Дальше было всё то, что обычно бывает.

Я переписал скрипт, потому что сорок строк превратились в четыреста и стало невозможно читать. Потом переехал на нормальную базу, потому что csv на десять тысяч строк открывался пять секунд и меня это бесило. Потом добавил телеграм-бота, который присылает сообщение, если цена упала ниже определённого порога.

Потом полтора месяца ничего не делал, потому что у младшей были зубы, и я спал урывками.

Потом вернулся и три вечера искал баг, из-за которого бот присылал уведомление в четыре утра. Оказалось, я перепутал часовые пояса. Классика, конечно, но своя классика запоминается лучше чужой.

Зачем, если есть готовое

Меня об этом спросили на работе, и я не сразу нашёл, что ответить.

Потом сформулировал так. На работе я почти никогда не делаю вещь целиком. Я делаю кусок, который потом станет частью другого куска, который увидит клиент, которого я не знаю. Это нормально, так устроена разработка. Но в какой-то момент начинаешь забывать, каково это, когда ты сам придумал, сам сделал и сам пользуешься.

А тут я придумал, сделал и пользуюсь. Пусть криво. Пусть падает. Зато оно моё от первой строчки до последней, и когда бот в семь утра прислал “Москва, Калининград, 4 100”, я почувствовал что-то такое, чего давно не чувствовал от работы.

Что я на самом деле выучил

Если честно, куда больше, чем на паре курсов, которые я купил и не досмотрел.

Как работает планировщик задач. Что бывает, когда сайт отдаёт 429. Зачем нужны миграции. Как не хранить токен бота в коде, который ты потом случайно запушишь (да, я его потом отзывал). Как выглядит твой собственный код через два месяца перерыва и почему комментарии пишут не для других, а для себя будущего.

Ничего из этого я бы не выучил, читая про это.

Итог

Проект по-прежнему никому не нужен. По-прежнему падает. У него до сих пор нет ни тестов, ни нормального README, потому что README я пишу для людей, а людей тут нет.

Но график цен за последние семь месяцев у меня есть. И по нему видно, что ноябрь дешевле июля почти в два раза.

Ноябрьская Балтика, говорят, суровая. Ну и хорошо.

Записано 2 апреля 2026