Size: a a a

2020 July 18

EF

Evgen Fil // 🎲 in aiogram [ru]
Ладно, пусть будет reply
источник

EF

Evgen Fil // 🎲 in aiogram [ru]
Вот по-твоему, нафига делать message.reply, если надо bot.reply_to
источник

EF

Evgen Fil // 🎲 in aiogram [ru]
И вообще, это почти вечная проблема в ООП
источник

EF

Evgen Fil // 🎲 in aiogram [ru]
Evgen Fil // 🎲
Ладно, пусть будет reply
А ещё у меня инет упал
UPD. очнулся
источник

EF

Evgen Fil // 🎲 in aiogram [ru]
hero.apply(spell)
Или
spell.apply_on(hero)
источник

EF

Evgen Fil // 🎲 in aiogram [ru]
Технопёс
Переслано от Технопёс
не думал что буду воевать в споре ООП vs привычки юзабилити, пиздец
Реально пиздец)
источник

Forevka ÐΞV... in aiogram [ru]
ктото знает в чем может Быть проблема, не могу подключиться к редису. По данным кредам конекчусь через redsmin - всё ок. но когда конекчусь с RedisStorage2 даёт
SemaphoreTimeout error
источник

Forevka ÐΞV... in aiogram [ru]
решено - не тот порт
источник

К

Костя in aiogram [ru]
Evgen Fil // 🎲
hero.apply(spell)
Или
spell.apply_on(hero)
hero.spell.apply(hero2)
источник

К

Костя in aiogram [ru]
Вот как они хотят
источник

EF

Evgen Fil // 🎲 in aiogram [ru]
Костя
hero.spell.apply(hero2)
Немного не понял аналогии
источник

К

Костя in aiogram [ru]
Evgen Fil // 🎲
Немного не понял аналогии
Чтобы была "логика"
источник

EF

Evgen Fil // 🎲 in aiogram [ru]
Правильно+Логично+Понятно: hero.apply(spell)
Люди хотят: spell.apply() # hero неявно вытащен из контекста
источник

К

Костя in aiogram [ru]
Evgen Fil // 🎲
Правильно+Логично+Понятно: hero.apply(spell)
Люди хотят: spell.apply() # hero неявно вытащен из контекста
А, да
источник

К

Костя in aiogram [ru]
Бля зоебали, заставляют больше писать букавок
источник

Т

Технопёс in aiogram [ru]
Evgen Fil // 🎲
Вот по-твоему, нафига делать message.reply, если надо bot.reply_to
Давай попробуем с другой стороны, взвесим

1. bot.download_file(file_id)
+ явно, всегда понятно кто делает работу, что принимает, каков результат
+ независимо от глобальных вещей
— возможный (!) минус - мы тянемся к специализированному рабочему объекту (???)

2. message.document.download()
+ кратко и локально
— сходу непонятно кто что грузит, мы тут видим только документ, который что-то по идее должен скачивать (так отдана команда)
— не ясно кто делает работу, а главное каким образом рабочий объект достаётся, возникают вопросы где так можно делать, а где нельзя
— зависит от глобальных/контекстных данных

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

Для особо ленивых придуман автокомплит, но видимо все равно обращаться в нужные зоны это тяжко
источник

EF

Evgen Fil // 🎲 in aiogram [ru]
Технопёс
Давай попробуем с другой стороны, взвесим

1. bot.download_file(file_id)
+ явно, всегда понятно кто делает работу, что принимает, каков результат
+ независимо от глобальных вещей
— возможный (!) минус - мы тянемся к специализированному рабочему объекту (???)

2. message.document.download()
+ кратко и локально
— сходу непонятно кто что грузит, мы тут видим только документ, который что-то по идее должен скачивать (так отдана команда)
— не ясно кто делает работу, а главное каким образом рабочий объект достаётся, возникают вопросы где так можно делать, а где нельзя
— зависит от глобальных/контекстных данных

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

Для особо ленивых придуман автокомплит, но видимо все равно обращаться в нужные зоны это тяжко
Так-то верно и по фактам, я даже с тобой согласен (с самого начала)

НО..
message.document.download() за тебя вытащит из контекста bot и напишет bot.download_file(message.document.file_id), красота, да и только)

Казалось бы, самому вытащить bot и сделать bot.download_file(message.document), но людям всё ещё удобнее писать первый вариант
источник

EF

Evgen Fil // 🎲 in aiogram [ru]
Интересно, кто вообще начал этот антипаттерн(если его так можно назвать)
источник

EF

Evgen Fil // 🎲 in aiogram [ru]
В ptb его не было до 9 или 10 версии (12 актуальная)
источник

Т

Технопёс in aiogram [ru]
это не паттерн, это просто желание иметь дохуя точек вклинивания в логику. Я считаю, что нужно иметь устаканенные связи, где каждый занимается своим делом, объект документа вообще знать не должен про какого-то там бота
источник