169 похожих чатов

Оправдания: 1) про синглтон. Выпилил и согласен, что инстанциировать джобы стоит

в 1 месте -> синглтон в помойку. Скрин 1 — решение проблемы. Норм? В самом регистраторе джоб не вижу проблем.

2) Оправдаюсь, что тройку я не тыкал и пока бест-практисы из нее отложим. Со всем остальным, не указанным в вопросах, я понял что не так сделал и займусь фиксом.

Вопросы:
1) Наследование и БД: у нас есть базовый класс DB, который определяет базовое поведение любого интерфейса взаимодействия с базой. На данный момент реализовано пробрасывание извне sessionmaker. Почему вышеописанное неверно с точки зрения наследования?
2) i18n. Я так понимаю, что он является стандартом де-факто. А что если предполагается 1 язык в боте? Не является ли i18n, в первую очередь, как инструмент для реализации мультиязычности, оверинжинирингом, а если является, что юзать вместо него, не храня втупую string-ами в .py?
3) Я сейчас занимаюсь реализацией 2 точек входа в аппку: стандартная (__main__) и cli, который будет надстройкой и всякое уметь: стадия проекта (dev/prod), polling / webhook etc. Верна ли идея или должна быть только 1 точка входа?
4) Нормально ли создавать таблички через Base.metadata.create_all?
5) Loguru: слышал отзывы и «за» и «против» него. Хотелось бы еще и ваше мнение, желательно аргументированное. Из того, что я слышал против логуру: лишняя зависимость, сложно встраивать параллельно с logging (а мне этого и не надо), мол медленно работает.
6) Специфика генератов и памяти. 2 скрин. Я правильно реализовал генератор получения юзеров? Или там один хрен с листом по потреблению будет?
7) Класс, вложенный в класс — почему плохо? А как же Base?

56 ответов

410 просмотров
Асоквер C6H4C12 #катякурица
скрины где

не влезло. Нужный скрин приложил.

5. Не видел адекватных аргументов "за". Как правило это неумение написать logging.basicConfig. В остальном это дикий тормоз для твоего приложения

5. Вот тут тред: https://t.me/ru_python/1574161

1) Вопрос в том, почему класс ORM и класс с методами юзера (по сути запросы к бд) - это наследник и родитель 2) Fluentogram и точка 3) Проект не должен знать нихуя про продакшн или dev 4) пойдёт 5) мне похуй, даю добро.Главное в либы не пихай 6) Нелимитированные запросы - плохо 7) У Тишки есть материал на эту тему

Alex RootJunior 🇺🇦
5. Вот тут тред: https://t.me/ru_python/1574161

О, напомнил, как думаешь, стоит ли к питон боту приделать OpenTelemetry чтоб вообще пиздец

Aleksandr Danilov 🇺🇦
О, напомнил, как думаешь, стоит ли к питон боту пр...

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

Aleksandr Danilov 🇺🇦
1) Вопрос в том, почему класс ORM и класс с метода...

2) А как тогда менеджерить версии проекта (dev/prod)? UPD: юзкейс: 2 бота: 1 в проде, другой в локалке для тестирования. При деплое просто меняем значение с dev на prod и проект дергает другой конфиг.

Aleksandr Danilov 🇺🇦
О, напомнил, как думаешь, стоит ли к питон боту пр...

не накручиваю ничего специального в само приложение максимум это пару метрик прометеуса и то редко если нужна статистика - рисуются графики по логах

Aleksandr Danilov 🇺🇦
Снаружи

Откуда «снаружи»? CLI — это снаружи, но тогда проект знает про свою версию..

Alex RootJunior 🇺🇦
не накручиваю ничего специального в само приложени...

Ну, телеметрия (читай егерь) больше для разбора боли с общением между сервисами. Я вот пока не решил что мне поможет корректно это мониторить. Сентри меньше ест, но мне наглядная

Aleksandr Danilov 🇺🇦
подменяй енвы

Окей, подумаю как это не через жопу реализовать

⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣Andrey @Karych
Окей, подумаю как это не через жопу реализовать

Пайдантик сеттингз. А дальше хочешь енвы, хочешь секреты - он всё жрёт из коробки

Oleg A.
Пайдантик сеттингз. А дальше хочешь енвы, хочешь с...

хоть динаконф и он еще больше форматов из коробки кушает

Alex RootJunior 🇺🇦
хоть динаконф и он еще больше форматов из коробки ...

Кстати, а можно ли пайдантик заменить на что-то более быстрое

Aleksandr Danilov 🇺🇦
Кстати, а можно ли пайдантик заменить на что-то бо...

Если ты про чтение конфигурации, то он очень просто кэшируется и все :)

Aleksandr Danilov 🇺🇦
Кстати, а можно ли пайдантик заменить на что-то бо...

датаклассы динаконфом парсишь, собираешь в датаклассы

Aleksandr Danilov 🇺🇦
и да, нахуя кэшировать конфиги

Чтобы не ходить за ними в енв каждый раз...

Aleksandr Danilov 🇺🇦
я в целом про тройку, где пайдантик везде

по секрету (не секрет) скажу что в 4.0 планирую выпиилить pydantic

Oleg A.
Чтобы не ходить за ними в енв каждый раз...

ну ахуеть задержки при том что конфиги читаются пару раз

Aleksandr Danilov 🇺🇦
ну ахуеть задержки при том что конфиги читаются п...

абстрактные 3 нсек умножаем на 300кк рпс, получаем пару часов задержек на чтение конфигов

Alex RootJunior 🇺🇦
по секрету (не секрет) скажу что в 4.0 планирую вы...

на четвёрке мои внуки будут писать, мне бы как-то в обход, пораньше

Oleg A.
Не используй, чё пристал)

чем плох условный class Pizdos: def __init__(self, **kwargs) -> None: self._configure(kwargs) def _configure(self, cfg: Dict[str, str]) -> None: ... def reconfigure(self, cfg: Dict[str, str]) -> None: self._configure(cfg) Тут конечно лишний метод, но суть в целом ясна конфиг надо в датакласс ещё поменять чтоб прям хорошо

Aleksandr Danilov 🇺🇦
чем плох условный class Pizdos: def __init__(...

Какие-то лишние нагромождённости. Проще надо быть

Alex RootJunior 🇺🇦
по секрету (не секрет) скажу что в 4.0 планирую вы...

А подскажи ещё фичей под четвёрку, буду форк пилить

Alex RootJunior 🇺🇦
по секрету (не секрет) скажу что в 4.0 планирую вы...

В пятерке, я считаю, что и мидлвари нужно выпилить

Tishka17
Зачем?

Непонятно в какой момент и когда запускается какой код, нерационально и нелинейно

ᴠᴇʀᴍɪ // не турбувати
а почему не в 3.0?

на этапе бета-теста такое изменение поздно делать

Tishka17
Зачем?

он не в восторге от выпиливания фабрики фильтров

Tishka17
Слышал паттерн декоратор?

Ты мою иронию так и не понял?

Вот зачем она нужна была я сразу не понимал

Tishka17
Вот зачем она нужна была я сразу не понимал

чтобы ракушки приходящие из телебота могли писать text="text", но круче

Aleksandr Danilov 🇺🇦
Да ладно

Неужели ради такой мелочи форк делать

Похожие вопросы

Обсуждают сегодня

Ребят в СИ можно реализовать ООП?
Николай
32
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
Всем доброго вечера. Разрабатываю 32 раз. приложение в Delphi. Столкнулся с тем, что стандартный  TFilestream  не работает с большим файлом > 2 ГБайт (после вызова функции see...
Vadim Gl
16
добрый день. Подскажите, есть сайт на 1.4.7 и я хочу обновиться, особо ничего не меняя. мне выбирать версию 1.4.35 или третью ветку? и можно ли обновлять "как есть", или нужно...
Digital Cat
12
народ, плиз хелп, всю голову сломал себе уже... разве может быть так, что GetProcAddress( GetModuleHandle( "kernel32.dll" ), "SetThreadDescription" ) вернёт ненулевое значение...
Iluha Companets
12
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
а плаксы из-под питона умеют только в комфортных условиях что-то выдавить из себя?)
Lencore
9
Кстати, что за тип булеана, который в памяти как 00 для фолса и 01 для тру отображается? Однобайтовый
Serjone
8
Коллеги, я тут для личных нужд пошел ставить MQTT сервер, пощупал mosquitto, но ужаснулся отсутствию такой банальности, как HTTP API для посмотреть список топиков. А тут что,...
Maksim Lapshin
14
Карта сайта