Information
- Rating
- 1,082-nd
- Location
- Москва, Москва и Московская обл., Россия
- Registered
- Activity
Specialization
Десктоп разработчик, Фулстек разработчик
From 2,000 $
Git
SQL
Python
Linux
Java
Java Spring Framework
Разработка программного обеспечения
Алгоритмы и структуры данных
Английский язык
ООП
Хорошо)
Расскажите, какую библиотеку Вы используете?
Покроем) как это всегда бывает, этап с тестами вечно оттягивается и уходит на второй план..
Пробовал через LLM их нагенерить, но получилось откровенно плохо, они сейчас лежат в ветке feat/tests.
Пока я придумываю, как их лучше всего написать.
Спасибо за приятные слова)
Важно еще понимать, что чем больше функционала, тем сложнее поддерживать проект, и тем выше риск заиметь множество багов.
Я стараюсь придерживаться той концепции, когда мы пичкаем библиотеку легковесными(!) и нативными плагинами, которые могут понадобиться любому разработчику (от новичка, до опытного)
Конечно, до кастомной ORM или DI дело не дойдет.
Я надеюсь, если проект соберет достаточную аудиторию, мы сможем вместе выстроить правильный вектор развития и границы.
Согласен, я тоже сталкивался с багами, вызванными hot reload, поэтому в Raito решил ограничиться только папкой хэндлеров. Watchdog не следит за всем проектом, т.к. у всех разный подход к разработке и перезагрузка модуля может вызвать побочные эффекты. А хэндлеры перезагружать в какой-то степени безопасно, с hot-reload намного проще править text/caption в отправляемых сообщениях и хотфиксить, это основная причина перезапусков бота - минорные изменения хэндлеров.
На самом деле, я долго колебался на счет внедрения rbac в библиотеку. С одной стороны это бизнес-слой, а с другой, я даю возможность полностью им управлять через интерфейсы.
В конечном счете решил добавить из-за двух фишек:
OR операции: в aiogram можно комбинировать фильтры (|&~), но чтобы подобное реализовать для ролей, нужно было покопаться в коде aiogram. И я уверен, не ВСЕМ бы разработчикам пришла такая идея в голову, что уж говорить про реализацию. Хотя, как по мне, это самое комфортное использование ролей-фильтров из всех возможных.
Регистрация команд: возможно, это первостепенная причина; из-за скрытия хэндлеров под ролями, они не должны отображаться в слэш-меню у обычных пользователей, но должны показываться у привилегированных. В статья я уже «хвастался», что благодаря парсингу всех хэндлеров проекта, Raito может автоматически регистрировать
bot.set_my_commands, только я забыл упомянуть, что он их еще регистрирует группируя по ролям.Что касается использования, я ничем не обязываю, можно проигнорировать этот модуль библиотеки и использовать свою реализацию.
wait_forскорее экспериментальная фича со множеством побочных эффектов. Я строго не рекомендую ее использовать в серьезных ботах. Но тем не менее, мне очень нравится её простота, и я использую Диалоги в своих личных ботах, в связи с легкостью разработки :)Касательно aiogram_dialog, да, я изучал Вашу библиотеку, мне она тоже нравится, очень качественная)
И я её в секции Пагинация кстати тоже подразумевал, как «одну из», использующую хранилище (безусловно, в случае aiogram_dialog это оправданно, и конечно в этом нет ничего плохого); но я хотел предложить сообществу упрощенные пагинаторы, использующие самый классический способ хранения информации, чтобы разработчики просто использовали
raito.paginateиrouter.on_paginateи не морочили себе голову пагинациями, а могли сфокусироваться на функционале.В любом случае, выбор зависит от кейса, вкусов и желания.
Я буду рад услышать любые предложения для расширения функционала Raito. Если вам чего-то не хватало (или мешало) при написании ботов, расскажите об этом здесь)
Интересно получается, не успела пройти неделя после выхода моей статьи о том, как написать логгер через бизнес-режим, появляется такой же пост, но с добавлением ChatGPT
Спасибо, поправил статью
Да, бизнес-режим доступен только с Telegram Premium. Выходит это единственный минус такого способа
P.S. потом его перенесут в отдельную подписку за отдельную плату :(
Хотелось бы увидеть какой-нибудь интересный способ издевки над читером, как например в Deadlock их превращали в лягушек. Ноо, жаль)