Как стать автором
Обновить

Комментарии 23

Тоже пишу своих ботов на Golang. Очень приятные получаются, особенно после JavaScript (Node.js), правда предпочитаю NoSQL базы.

Не знаю интересно ли кому-то тут почитать про какие-то связки с MTProto?
Конечно, пишите!
По мне на JS(Node.js) делается куда проще и по приятнее. Но это дело вкуса.
Писать может быстрее и может проще. Но на Go приложения получаются с ощущением «железобетонной» надежности, а главное намного быстрей.

Когда вы говорите "быстрей", тем более намного, то правила хорошего тона рекомендуют показывать сравнения, которые позволяют вам такие заявления делать.


В зависимости от задачи это может быть и не так.

Хорошо :)
В случае с ботами я работал с генерацией графики, там прирост был очень большой. Буквально в два-три раза. В случае с Node использовал Fabric.js, в случае с Go использовал библиотеку gg.

Остальное мне показалось субъективно быстрей, но какие-то замеры не делал.
if response, err := http.Get(request); err != nil {
        log.Fatal(err)
}

Еесли http.Get вернёт ошибку, сервис закончит работу.
Спасибо, исправил
а почему sql.Open не вынести из функций?

Потому что вне функций можно использовать только (package, import, var, const, type, func), а мне нужно вдруг чего ловить err.
db, err := sql.Open("postgres", dbInfo)
if err != nil {
	return err
}
defer db.Close()

Как вариант можно создать функцию openDB и в нее засунуть код который подключается к БД.
НЛО прилетело и опубликовало эту надпись здесь
Тоже сейчас пишу бота, но обновления решил получать через вебхук, а не лонгполлинг — есть ощущение, что так ресурсов сервера тратится меньше. Не расскажите, почему выбрали опрос, а не вебхук, подводные камни, связанные с той или иной стратегией?
Вы правы, вебхук тратит намного меньше ресурсов, так же он намного надежнее, ибо при обновлениях вам их присылают сервера телеграма т.е. вашему приложению не нужно открывать соединение с серверами каждые n секунды чтобы получить новые данные. Проще говоря, используя long polling вашему приложению самому нужно запрашивать обновления у API, а используя вебхуки — сервера телеграма сами будут отправлять на ваш сервер каждое обновление. Мною был выбран long polling ибо он проще, однако для боевого бота который шел бы в продакшен однозначно вебхук.
Не во всех случаях Телеграм может достучаться до вашего сервера, например если он за NAT. Long-polling более универсальный и работает даже в закрытых сетях. Но как уже отметил trigun117, на продакшене лучше использовать в любом случае вебхуки.
Мне одному кажется что токен бота надо бы замазывать в скринах?

Бот ведь создан для примера, никакого вреда автору не принести использованием токена. Тем более он легко меняется, буквально одной командой, направленной к botfather

О таких вещах легко забыть, учитывая что это исключительно ЧФ. Да и вообще приучить себя не выкладывать такие вещи в публичный доступ, как по мне, хорошая привычка, а то зайдешь на clip2net в публичную галерею и ужасаешься =)

Мой фрэймфорк на Go для написания ботов под разные мессенджеры с единой логикой — https://github.com/strongo/bots-framework — может кому пригодится.


В основном заточен на Телеграм и работает на Google AppEngine.

Посморел ваш фреймворк, вроде как его развитие прекратилось.
Идея классная объеденить работу сразу с несколькими мессенджерами!
Может посоветуете что-то похожее?
О, прикольно, получил приятнейший опыт работы с ботами для телеграма, инстаграма и ютуба на питоне, а благодаря автору статьи появилась возможность познакомиться с Go:)
А GO будет предустановлен в виртуальной машине?
НЛО прилетело и опубликовало эту надпись здесь
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории