1:21:41 AnswerCallbackQueryAsync() нужно вызывать всегда, так будет убираться анимация "ожидания" с кнопки, ты можешь на него отвечать без текста (просто передать только айди) и всё будет окей без попапа, ну и после отправить месседж
А как лучше всего организовать архитектуру для Telegram бота на C#? Я тоже недавно начал изучать IT, рассматривал разные курсы, но выбрал Skypro. Сначала сомневался, но теперь работаю в геймдеве))
1:00:36 абсолютно неверное заявление, ничего там нет рядом с оптимизацией это сделано для структурированного логирования - если использовать мощные логеры (которые тебе нужны), то за счёт темплейт строки можно структурировать логи и позже фильтровать их (если логгер использует то, что мы структурированно всё отдаём), вот допустим у нас есть некий логер у которого есть веб ui, мы заходим и там можем отфильтровать логи по статус кодам, которые были из разряда 5XX, либо как минимум получить цветные шрифты для "меняющихся" переменных в темплейте при использовании того же консольного серилога а при использовании интерполяции - мы теряем эти данные для структурирования и поэтому IDE нас предупреждает об этом, что лучше бы тебе использовать темплейт строку, а не уже готовую
Структурное логирование это понятно, но оптимизация там есть. Если использовать метод расширения, то можно избежать боксинга. Передавать параметры через $ невыгодно, потому что будет выделяться доп память, так как в методе он и так подставляет эти параметры за счёт второго аргумента object[] learn.microsoft.com/en-us/dotnet/core/extensions/high-performance-logging
@@KirillSachkov боксинга можно избежать не за счёт темплейт строки, а за счёт использование класса LoggerMessage (а ещё лучше использовать атрибут LoggerMessageAttribute с генерацией кода), как раз таки используя _logger.LogInformation("foo {Bar}", BarInt) там происходит боксинг, так ещё и заворачивание в массив за счёт params
Я пришёл сюда в отчаянии, потому что сделать бота для своего бизнеса хочется, а платить несколько тысяч в месяц за конструкторы не хочется. В связи с этим вопрос, справится ли с созданием бота человек, который пока написал только helloworld и дубовый калькулятор на C#?
А в чем проблема один раз заплатить разработчику, который без всяких конструкторов тебе бота сделает одним платежом ? С таким подходом можно и сантехника, электрика не вызывать, самому все выучить🤣 Это наш исконно росиянский дебилизм, самопалом заниматься.
Мой телеграм канал - t.me/sachkov_blog
1:21:41 AnswerCallbackQueryAsync() нужно вызывать всегда, так будет убираться анимация "ожидания" с кнопки, ты можешь на него отвечать без текста (просто передать только айди) и всё будет окей без попапа, ну и после отправить месседж
лайк за гачистикеры
А как лучше всего организовать архитектуру для Telegram бота на C#? Я тоже недавно начал изучать IT, рассматривал разные курсы, но выбрал Skypro. Сначала сомневался, но теперь работаю в геймдеве))
Шарашкина контора, пидapa$ов, которые прибегают к услугам спамботов.
xyem вам по губам 🤣
54:10
на самом деле, в личных сообщениях с ботом chatId == userId юзера (не бота), поэтому можно и то, и то использовать
1:00:36
абсолютно неверное заявление, ничего там нет рядом с оптимизацией
это сделано для структурированного логирования - если использовать мощные логеры (которые тебе нужны), то за счёт темплейт строки можно структурировать логи и позже фильтровать их (если логгер использует то, что мы структурированно всё отдаём), вот допустим у нас есть некий логер у которого есть веб ui, мы заходим и там можем отфильтровать логи по статус кодам, которые были из разряда 5XX, либо как минимум получить цветные шрифты для "меняющихся" переменных в темплейте при использовании того же консольного серилога
а при использовании интерполяции - мы теряем эти данные для структурирования и поэтому IDE нас предупреждает об этом, что лучше бы тебе использовать темплейт строку, а не уже готовую
Структурное логирование это понятно, но оптимизация там есть. Если использовать метод расширения, то можно избежать боксинга. Передавать параметры через $ невыгодно, потому что будет выделяться доп память, так как в методе он и так подставляет эти параметры за счёт второго аргумента object[] learn.microsoft.com/en-us/dotnet/core/extensions/high-performance-logging
@@KirillSachkov боксинга можно избежать не за счёт темплейт строки, а за счёт использование класса LoggerMessage (а ещё лучше использовать атрибут LoggerMessageAttribute с генерацией кода), как раз таки используя _logger.LogInformation("foo {Bar}", BarInt) там происходит боксинг, так ещё и заворачивание в массив за счёт params
I’m waiting for the second part ❤
Комментарий для продвижения канала!
Как я эфир умудрился пропустить....
МОжно ссылку на твой гит хаб?
Я пришёл сюда в отчаянии, потому что сделать бота для своего бизнеса хочется, а платить несколько тысяч в месяц за конструкторы не хочется. В связи с этим вопрос, справится ли с созданием бота человек, который пока написал только helloworld и дубовый калькулятор на C#?
А в чем проблема один раз заплатить разработчику, который без всяких конструкторов тебе бота сделает одним платежом ?
С таким подходом можно и сантехника, электрика не вызывать, самому все выучить🤣
Это наш исконно росиянский дебилизм, самопалом заниматься.
Имхо, лучше заняться бизнесом, а для бота нанять на фрилансе программиста джуна, который вам сделает бота почти за бесплатно ради опыта