Pull to refresh
8K+
11
6
Rating
2
Subscribers
Send message

Хорошо)

Расскажите, какую библиотеку Вы используете?

Покроем) как это всегда бывает, этап с тестами вечно оттягивается и уходит на второй план..

Пробовал через LLM их нагенерить, но получилось откровенно плохо, они сейчас лежат в ветке feat/tests. 

Пока я придумываю, как их лучше всего написать. 

Спасибо за приятные слова)

Важно еще понимать, что чем больше функционала, тем сложнее поддерживать проект, и тем выше риск заиметь множество багов.

Я стараюсь придерживаться той концепции, когда мы пичкаем библиотеку легковесными(!) и нативными плагинами, которые могут понадобиться любому разработчику (от новичка, до опытного)

Конечно, до кастомной ORM или DI дело не дойдет. 

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

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

Согласен, я тоже сталкивался с багами, вызванными hot reload, поэтому в Raito решил ограничиться только папкой хэндлеров. Watchdog не следит за всем проектом, т.к. у всех разный подход к разработке и перезагрузка модуля может вызвать побочные эффекты. А хэндлеры перезагружать в какой-то степени безопасно, с hot-reload намного проще править text/caption в отправляемых сообщениях и хотфиксить, это основная причина перезапусков бота - минорные изменения хэндлеров.

классика, которой почти всегда не хватает. Что насчет ReBAC? В целом я не очень люблю, когда логику проверки прав переносят из БЛ в фреймворк.

На самом деле, я долго колебался на счет внедрения rbac в библиотеку. С одной стороны это бизнес-слой, а с другой, я даю возможность полностью им управлять через интерфейсы. 

В конечном счете решил добавить из-за двух фишек:

  1. OR операции: в aiogram можно комбинировать фильтры (|&~), но чтобы подобное реализовать для ролей, нужно было покопаться в коде aiogram. И я уверен, не ВСЕМ бы разработчикам пришла такая идея в голову, что уж говорить про реализацию. Хотя, как по мне, это самое комфортное использование ролей-фильтров из всех возможных.

  2. Регистрация команд: возможно, это первостепенная причина; из-за скрытия хэндлеров под ролями, они не должны отображаться в слэш-меню у обычных пользователей, но должны показываться у привилегированных. В статья я уже «хвастался», что благодаря парсингу всех хэндлеров проекта, Raito может автоматически регистрировать bot.set_my_commands, только я забыл упомянуть, что он их еще регистрирует группируя по ролям.

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

Проблема не только в нагрузке (полагаю речь про горизонтальное масштабирование), но и в том что при рестарте бота эта информация будет потеряна.

Рассматривали ли вы aiogram_dialog в этом месте?

wait_for скорее экспериментальная фича со множеством побочных эффектов. Я строго не рекомендую ее использовать в серьезных ботах. Но тем не менее, мне очень нравится её простота, и я использую Диалоги в своих личных ботах, в связи с легкостью разработки :)


Касательно aiogram_dialog, да, я изучал Вашу библиотеку, мне она тоже нравится, очень качественная)

И я её в секции Пагинация кстати тоже подразумевал, как «одну из», использующую хранилище (безусловно, в случае aiogram_dialog это оправданно, и конечно в этом нет ничего плохого); но я хотел предложить сообществу упрощенные пагинаторы, использующие самый классический способ хранения информации, чтобы разработчики просто использовали raito.paginate и router.on_paginate и не морочили себе голову пагинациями, а могли сфокусироваться на функционале.

В любом случае, выбор зависит от кейса, вкусов и желания.

Я буду рад услышать любые предложения для расширения функционала Raito. Если вам чего-то не хватало (или мешало) при написании ботов, расскажите об этом здесь)

Интересно получается, не успела пройти неделя после выхода моей статьи о том, как написать логгер через бизнес-режим, появляется такой же пост, но с добавлением ChatGPT

Спасибо, поправил статью

Да, бизнес-режим доступен только с Telegram Premium. Выходит это единственный минус такого способа
P.S. потом его перенесут в отдельную подписку за отдельную плату :(

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

Хотелось бы увидеть какой-нибудь интересный способ издевки над читером, как например в Deadlock их превращали в лягушек. Ноо, жаль)

Information

Rating
1,082-nd
Location
Москва, Москва и Московская обл., Россия
Registered
Activity

Specialization

Десктоп разработчик, Фулстек разработчик
From 2,000 $
Git
SQL
Python
Linux
Java
Java Spring Framework
Разработка программного обеспечения
Алгоритмы и структуры данных
Английский язык
ООП