Pull to refresh

Comments 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 и в нее засунуть код который подключается к БД.
UFO just landed and posted this here
Тоже сейчас пишу бота, но обновления решил получать через вебхук, а не лонгполлинг — есть ощущение, что так ресурсов сервера тратится меньше. Не расскажите, почему выбрали опрос, а не вебхук, подводные камни, связанные с той или иной стратегией?
Вы правы, вебхук тратит намного меньше ресурсов, так же он намного надежнее, ибо при обновлениях вам их присылают сервера телеграма т.е. вашему приложению не нужно открывать соединение с серверами каждые n секунды чтобы получить новые данные. Проще говоря, используя long polling вашему приложению самому нужно запрашивать обновления у API, а используя вебхуки — сервера телеграма сами будут отправлять на ваш сервер каждое обновление. Мною был выбран long polling ибо он проще, однако для боевого бота который шел бы в продакшен однозначно вебхук.
Не во всех случаях Телеграм может достучаться до вашего сервера, например если он за NAT. Long-polling более универсальный и работает даже в закрытых сетях. Но как уже отметил trigun117, на продакшене лучше использовать в любом случае вебхуки.
Мне одному кажется что токен бота надо бы замазывать в скринах?

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

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

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


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

Посморел ваш фреймворк, вроде как его развитие прекратилось.
Идея классная объеденить работу сразу с несколькими мессенджерами!
Может посоветуете что-то похожее?
О, прикольно, получил приятнейший опыт работы с ботами для телеграма, инстаграма и ютуба на питоне, а благодаря автору статьи появилась возможность познакомиться с Go:)
А GO будет предустановлен в виртуальной машине?
UFO just landed and posted this here
Sign up to leave a comment.

Articles