## Зачем мне понадобился бот (это не про бизнес)
У меня была задача, которую я делала каждый понедельник вручную: 40 минут сверки таблицы с графиком, отправка пяти сообщений двум контрагентам, копирование чисел в три места. Скучно, монотонно, легко ошибиться. Я решила один раз написать скрипт, чтобы больше этим не заниматься.
Бот не для клиента, не для продажи. Для себя. Поэтому и «за выходные» — без дедлайнов, без заказчика, без согласований.
## Архитектура: что заняло два часа, а что — два дня
Я разбила проект на пять частей: получить данные из таблицы, сформировать сводку, отправить в мессенджер, настроить расписание, добавить обработку ошибок.
Первые четыре части заняли два с половиной часа. Пятая — два дня. Не потому что логирование сложное, а потому что я впервые задумалась, что будет, когда что-то сломается в продакшене, и не при ком. До этого все мои скрипты работали в моём присутствии — я их запускала, я смотрела, я чинила. Тут — некому смотреть.
## 3 ошибки, которые я сделала в первые сутки
**Первая — не подумала про токены.** Бот работает от имени приложения, а не пользователя. Когда я впервые отправила тестовое сообщение, оно ушло не в мой мессенджер, а в чужой — потому что я перепутала два токена в одной переменной окружения. Потратила час на отладку, прежде чем нашла.
**Вторая — обработка ошибок была try/except без уведомления.** Я привыкла, что в личных скриптах ошибка означает «остановись и спроси меня». Здесь мне спросить некого. Бот в понедельник утром отправил молчаливый сбой, таблица не обновилась, и я узнала об этом через неделю, когда цифра разошлась.
**Третья — логирование в файл, который я не смотрю.** Записать в файл легко. Читать его регулярно — отдельная привычка. Первая неделя прошла без чтения логов, потому что «всё работает».
## Как бот впервые ответил живому человеку
В понедельник утром я запустила первый прогон по расписанию. Сообщение ушло. Адресат открыл чат, прочитал, ответил: «Спасибо, всё верно». Бот ему не ответил. Я ответила. Это был первый момент, когда скрипт повлиял на чужой процесс без моего участия.
Что я поняла в ту секунду: у скрипта есть аудитория, даже если он не публичный. И эта аудитория ожидает не просто данных, а поведения. Если бот вовремя прислал — на него можно полагаться. Если один раз промолчал — всё доверие обнулилось.
Я переделала архитектуру так, чтобы бот писал мне в личку, когда что-то не так. Теперь у меня два канала: основной — адресату, сервисный — мне, в режиме «только если сломалось».
## Что бы я переделала сейчас, через две недели
За 14 дней эксплуатации у меня список из четырёх правок:
1. Расписание — не «раз в неделю», а «каждый понедельник до 9:00, иначе ругай меня». Расписание должно быть настойчивым, иначе легко сказать себе «потом добавлю».
2. Тестовый прогон перед каждым боевым. Сначала сухой режим — логирует, но не отправляет, потом боевой. Это добавило мне уверенности.
3. Версия скрипта в каждом сообщении. Внизу каждого ответа бота теперь стоит «версия 1.3». Мелочь, но если адресат видит странное поведение, я сразу знаю, какую версию смотреть.
4. Резервное копирование таблицы перед обработкой. Один раз скрипт перезаписал шапку таблицы по неверному ключу — восстанавливала вручную. Теперь перед обработкой сохраняется копия.
## Применимо не к боту, а к любому проекту на выходные
Урок не про мессенджеры. Урок про момент, когда ваш код впервые влияет на чужой процесс без вашего присутствия. Это случается с любой автоматизацией: отчёты по расписанию, рассылки клиентам, обновления витрины, обновления в таск-трекере. Код становится «сотрудником», а не «инструментом».
Что я вынесла:
- Перед запуском в бой — задайте вопрос «кто заметит, если оно сломается, и за сколько».
- Если ответ «никто» — добавьте канал уведомлений для себя.
- Если ответ «адресат через неделю» — это слишком поздно, нужен второй канал.
- Логирование — это не «добавим потом», это часть продукта.
Если вы давно хотели автоматизировать свою понедельную рутину — попробуйте. Самый дешёвый способ понять, где грабли, — написать за выходные и запустить в понедельник.
Комментарии
Пока нет комментариев. Стань первым!