Комментарии 17
При этом подходе, если бот будет заниматься чем-то «тяжелым» — все остальные пользователи будут ждать пока не обработается сообщение первого, т.е. бот будет не отзывчивый.
Либо асинхронную обработку включать, либо вебхуки.
Самое сложное в ботах — реализация конечного автомата, оно же FSM и управление контекстом с привязкой к chat id
Либо асинхронную обработку включать, либо вебхуки.
Самое сложное в ботах — реализация конечного автомата, оно же FSM и управление контекстом с привязкой к chat id
+2
Все верно.
На примере моего бота по фильмам расскажу, что у него работа с апи, подборы фильмов занимают очень приличный кусок времени. Все это связано с тем, что в апишку я могу делать запросы не так часто, ответы получаю не быстро.
В данной статье заложен базис под бота. А дальше я хочу показать как разделить потоки. Как обработку входящий сообщений отделить от отправки, как запустить выполнение различных задачь так же в разные потоки, которые не будут мешать друг другу.
Спасибо за комментарий
На примере моего бота по фильмам расскажу, что у него работа с апи, подборы фильмов занимают очень приличный кусок времени. Все это связано с тем, что в апишку я могу делать запросы не так часто, ответы получаю не быстро.
В данной статье заложен базис под бота. А дальше я хочу показать как разделить потоки. Как обработку входящий сообщений отделить от отправки, как запустить выполнение различных задачь так же в разные потоки, которые не будут мешать друг другу.
Спасибо за комментарий
0
а почему на java? обычно же выбирают питон
+1
Я джавист, мне джава ближе :)
+1
«Обычно» не означает, что Python подходит лучше. Это лишь может означать, что ботов пишут в основном питонисты, не более. Нет никаких преимуществ у питона перед остальными языками в написании ботов. Вообще нет.
0
та не, просто работа со структурами данных, да и я язык в целом позволяют лаконичнее писать выражения (проще и короче), без бойлерплейта (я джавист)
0
Какие структуры данных применяются при написании ботов? Везде одна и та же паста из if/else в любых ботах, какие я видел. Ну если в этом смысле, то да, питон лаконичнее, но я не думаю, что это преимущество языка. Это недостаток разработчиков.
0
Ну про структуры данных же можно говорить в зависимости от функционала бота. Понятно, что если это простейшие команды на искуственном интеллекте обычных if/else — то никакой структуры по данным то и не нужно.
А если хочешь какую-то легко расширяемуя систему, легкое добавление команд, какую-то хитрую обработку — тут уже без данных не обойтись.
Если ты что-то сохранять и фиксировать начинаешь — тоже стуктуры уже нужны.
Тот же мой бот, что события считать умеет. Да, можно все сделать топорно. А можно красиво завести через сущности. Привязать к нему гибернейте, дать какую-то гибкость для развертывания.
А это уже достаточно полноценное приложение.
Я считаю, что выбор языка в первую очередь зависит от того, на чем программисту удобнее работать. Если ты можешь выдать качественный продукт, который потом легко поддерживать, код легко читать и понять — почему нужно упираться в то, что в основном ботов пишут на питоне? У телеграма есть библиотека под джаву. Сделана она качественно, пользоваться её одно удовольствие и не вижу никакой проблемы в том, что бот работает на джаве.
Хотя на другом ресурсе мне один нудот в коментариях начал писать зачем-то, что я микроскопом гвозди забиваю.
А если хочешь какую-то легко расширяемуя систему, легкое добавление команд, какую-то хитрую обработку — тут уже без данных не обойтись.
Если ты что-то сохранять и фиксировать начинаешь — тоже стуктуры уже нужны.
Тот же мой бот, что события считать умеет. Да, можно все сделать топорно. А можно красиво завести через сущности. Привязать к нему гибернейте, дать какую-то гибкость для развертывания.
А это уже достаточно полноценное приложение.
Я считаю, что выбор языка в первую очередь зависит от того, на чем программисту удобнее работать. Если ты можешь выдать качественный продукт, который потом легко поддерживать, код легко читать и понять — почему нужно упираться в то, что в основном ботов пишут на питоне? У телеграма есть библиотека под джаву. Сделана она качественно, пользоваться её одно удовольствие и не вижу никакой проблемы в том, что бот работает на джаве.
Хотя на другом ресурсе мне один нудот в коментариях начал писать зачем-то, что я микроскопом гвозди забиваю.
0
Я с вами полностью согласен. Я к этому и веду, что питон не является самым лучшим языком в данном случае, но часто вижу, как автора бота спрашивают: «а почему не на питоне?». И все примеры ботов, которые были на питоне, были выполнены в духе if/else, а вот на джаве и пхп мне попадались очень неплохие проекты, в которых код можно было очень легко расширять, добавив в коллекцию команду, которую хэндлер сам вызовет при обращении к боту.
0
сложность начинается при создании fsm, кнопки назад, работе с контекстом.
0
Спасибо за мануал. Ждем еще на эту тему!
+1
Огромное спасибо за туториал, надеюсь будет много статей на эту тему именно по джаве(круто если б еще и на котлин). И вообще про мл на джаве/котлин
+1
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
TelegramBot инструкция по созданию базового функционала для бота. (Часть 1)