Обложка канала

Дизайнер учит код

Канал о том, как дизайнер интерфейсов осваивает код, чтобы научиться создавать интерактивные прототипы.

Дизайнер учит код

9 лет назад
Открыть в
Привет! Хайпанём немножечко?

В последние пару недель у меня совсем не было времени писать. Это связано со множеством вещей, но самое главное — всё своё свободное время я тратил на написание бота-резюме для Telegram.

С гордостью вам представляю — @BoboshkoRobot. Бот умеет показывать моё портфолио, рассказывать обо мне и моих навыках, а также — помогает связаться со мной.

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

Во-первых, хочу сказать спасибо @JuniorPomidor (Twitter) за помощь с освоением библиотек, примеры кода и терпение.

Во-вторых, спасибо моему давнему товарищу — Косте Вульсонову. Костя очень сильно помог с подбором и настройкой сервера. Без него всё не имело бы смысла, так как у бота просто не было бы «дома».

Технологии
Бот написан на JavaScript (ECMAscript 6) с использованием библиотек Telegraf и Telegraf Botanio.

Telegraf — это framework для создания ботов на основе API Telegram, а Telegraf Botanio — это «обёртка» API AppMetrica, которая написана специально для Telegraf.

Благодаря Telegraf Botanio, я знаю, сколько людей пользовалось ботом, как долго, на какие кнопки они нажимали и так далее.

Весь код я храню в приватном репозитории на Bitbucket. Основной файл бота — core.js. Он хранит в себе практически весь код (привет, говнокод) и занимает всего 153 строки с учётом комментариев. Весь текст вынесен в text.json. Ключи тоже хранятся отдельно.

Тут чуть подробнее. Оказалось, что есть переменные окружения, в которые можно записывать ключи, чтобы они не хранились в исполняемом коде (если я правильно понял суть работы) и не были скомпрометированы (если что). В идеале, именно так должно быть, но я пока так не умею.

Все сообщения отправленные через бота, приходят в приватный канал, доступ к которому имею только я и бот.

На стороне сервера, бот работает через pm2, который заодно записывает логи.

Сервер
Бот «живёт» на дешёвом VDS-хостинге за 150 ₽ в месяц.

Параметры сервера: 1 ядро (CPU), 512 мб (RAM), 5 гб (SSD). Также на моём тарифе есть ограничения на входящий и исходящий трафик — 250 гб в месяц. Для бота более чем достаточно.

Но есть и минусы. Так, например, у хостера нет подписанных SSL-сертификатов, что осложняет использование Webhook. Правда, можно самому поднять веб-сервер и сделать самоподписанный сертификат — что является оптимальным выходом из ситуации.

Минусы
Буду честен — есть и проблемы.

Иногда бот может подтупливать, но мне кажется, я знаю в чём причина. Постараюсь это исправить немного позже.

Если что-то пошло не так, то бот будет возвращать случайную ошибку. Напишите команду /start, чтобы всё исправить. После этого бот должен перезапуститься. Либо удалите его из списка чатов и снова добавьте. Так тоже будет работать.

Есть вероятность, что на Windows Phone нет клавиатуры. Но это не точно. Если вы используете Telegram на Windows Phone, напишите мне пожалуйста и расскажите, на месте у вас клавиатура или нет?