Задать вопрос
  • Telebot | Почему ошибка в SendMessageParams?

    А почему бы вам не установить курсор на "SendMessageParams" и не нажать правой кнопкой мыши на этом слове, да и не перейти к объявлению типа, чтобы просто посмотреть, а какие же там поля требуются в этой структуре?
    И, странное дело, нет такого поля ReplyToMessageID у типа SendMessageParams, о чём вам прямо и говорит компилятор.

    Документация и исходный код - вот источник правды, а не устаревшие туториалы школьников на ютубчике.

    // SendMessageParams - Represents parameters of sendMessage method.
    type SendMessageParams struct {
    	// BusinessConnectionID - Optional. Unique identifier of the business connection on behalf of which the
    	// message will be sent
    	BusinessConnectionID string `json:"business_connection_id,omitempty"`
    
    	// ChatID - Unique identifier for the target chat or username of the target channel (in the format
    	// @channel_username)
    	ChatID ChatID `json:"chat_id"`
    
    	// MessageThreadID - Optional. Unique identifier for the target message thread (topic) of the forum; for
    	// forum supergroups only
    	MessageThreadID int `json:"message_thread_id,omitempty"`
    
    	// Text - Text of the message to be sent, 1-4096 characters after entities parsing
    	Text string `json:"text"`
    
    	// ParseMode - Optional. Mode for parsing entities in the message text. See formatting options
    	// (https://core.telegram.org/bots/api#formatting-options) for more details.
    	ParseMode string `json:"parse_mode,omitempty"`
    
    	// Entities - Optional. A JSON-serialized list of special entities that appear in message text, which can be
    	// specified instead of parse_mode
    	Entities []MessageEntity `json:"entities,omitempty"`
    
    	// LinkPreviewOptions - Optional. Link preview generation options for the message
    	LinkPreviewOptions *LinkPreviewOptions `json:"link_preview_options,omitempty"`
    
    	// DisableNotification - Optional. Sends the message silently
    	// (https://telegram.org/blog/channels-2-0#silent-messages). Users will receive a notification with no sound.
    	DisableNotification bool `json:"disable_notification,omitempty"`
    
    	// ProtectContent - Optional. Protects the contents of the sent message from forwarding and saving
    	ProtectContent bool `json:"protect_content,omitempty"`
    
    	// MessageEffectID - Optional. Unique identifier of the message effect to be added to the message; for
    	// private chats only
    	MessageEffectID string `json:"message_effect_id,omitempty"`
    
    	// ReplyParameters - Optional. Description of the message to reply to
    	ReplyParameters *ReplyParameters `json:"reply_parameters,omitempty"`
    
    	// ReplyMarkup - Optional. Additional interface options. A JSON-serialized object for an inline keyboard
    	// (https://core.telegram.org/bots/features#inline-keyboards), custom reply keyboard
    	// (https://core.telegram.org/bots/features#keyboards), instructions to remove a reply keyboard or to force a
    	// reply from the user
    	ReplyMarkup ReplyMarkup `json:"reply_markup,omitempty"`
    }


    А если точно так же перейти к определению типа поля ReplyParameters, то можно увидеть как раз то самое искомое вами поле MessageID

    // ReplyParameters - Describes reply parameters for the message that is being sent.
    type ReplyParameters struct {
    	// MessageID - Identifier of the message that will be replied to in the current chat, or in the chat chat_id
    	// if it is specified
    	MessageID int `json:"message_id"`
    
    	// ChatID - Optional. If the message to be replied to is from a different chat, unique identifier for the
    	// chat or username of the channel (in the format @channel_username). Not supported for messages sent on behalf
    	// of a business account.
    	ChatID ChatID `json:"chat_id,omitempty"`
    
    	// AllowSendingWithoutReply - Optional. Pass True if the message should be sent even if the specified
    	// message to be replied to is not found. Always False for replies in another chat or forum topic. Always True
    	// for messages sent on behalf of a business account.
    	AllowSendingWithoutReply bool `json:"allow_sending_without_reply,omitempty"`
    
    	// Quote - Optional. Quoted part of the message to be replied to; 0-1024 characters after entities parsing.
    	// The quote must be an exact substring of the message to be replied to, including bold, italic, underline,
    	// strikethrough, spoiler, and custom_emoji entities. The message will fail to send if the quote isn't found in
    	// the original message.
    	Quote string `json:"quote,omitempty"`
    
    	// QuoteParseMode - Optional. Mode for parsing entities in the quote. See formatting options
    	// (https://core.telegram.org/bots/api#formatting-options) for more details.
    	QuoteParseMode string `json:"quote_parse_mode,omitempty"`
    
    	// QuoteEntities - Optional. A JSON-serialized list of special entities that appear in the quote. It can be
    	// specified instead of quote_parse_mode.
    	QuoteEntities []MessageEntity `json:"quote_entities,omitempty"`
    
    	// QuotePosition - Optional. Position of the quote in the original message in UTF-16 code units
    	QuotePosition int `json:"quote_position,omitempty"`
    }


    Итого, в вашем случае будет как-то так:

    id, ticket, reply_message := db.GetTicketAndMessage(message.ReplyToMessage.MessageID, user.ID)
    	if ticket == nil {
    		_, _ = bot.SendMessage(&telego.SendMessageParams{
    			ChatID:           telego.ChatID{ID: message.Chat.ID},
    			Text:             "This ticket or message does not exist.",
    			ReplyParameters:  &telego.ReplyParameters{
                                    MessageID: message.MessageID
                            },
    			ParseMode:        "HTML",
    		})
    		return
    	}
    Ответ написан
    5 комментариев
  • Так ли сложно найти место начинающему фронтенду?

    kellas
    @kellas
    веб-разработчик
    С таким подходом будет сложно и не надёжно.
    Нужно стремиться стать разработчиком ПО / программистом. Учиться программировать, а не "вкатываться". Отдавать себе отчёт что потребуется лет 5 чтобы стать прост нормальным специалистом который может решать проблемы.
    Даже те джуны что устроились на работу, это люди которым прост повезло сейчас, если они не изменят свой подход к разработке то останутся без работы , потому что в следующий раз может и не повезти и пойдут вкатываться в другую сферу снова начиная всё сначала.
    Цель должна быть не "устроиться на работу" , а "стать классным программистом" , иначе, с такими маленькими амбициями сразу после трудоустройства человек перестает развиваться как специалист, ведь он уже достиг своей цели.
    Я думаю, что если ты вообще задаёшься этим вопросом, жалеешь потраченное время, то программирование это не твоё, иди эвент-менеджером каким-нибудь за новыми людьми и ситуациями )
    Ответ написан
    2 комментария
  • Как найти работу Unity разработчиком?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    Весной 2023 года я устал от Python, т.к. не мог найти ни заказа, ни работы
    Плохо искали
    а ещё обнаружил у себя проблемы с фронтендом.
    И поэтому сбежали на Unity и C#?
    как может выглядеть собеседование на разработчика Unity
    Точно не так, как вы его представляете
    как быть с портфолио
    Я думаю на кликеры в Я.Играх никто смотреть не будет.
    есть ли вообще перспективы у изучения этого движка и языка C#
    Есть, это я вам точно говорю
    день, когда пишу этот вопрос, проходит бездарно.
    Ну это уж вы сами виноваты, саморазвитием можно всегда заниматься
    В такие моменты у меня возникают сомнения в идее работать с Unity дальше. Впрочем, с Python такое тоже бывало
    Ну это вам к психологу надо, а не сюда
    Ответ написан
    Комментировать
  • Как стать Middle и т.д в Gamedev Unity?

    saboteur_kiev
    @saboteur_kiev Куратор тега Разработка игр
    software engineer
    Уровни выставляются не вами, а работодателем. У каждого работодателя могут быть свои критерии, и то, о чем идет речь на рынке - это в основном нечто усредненное.
    Хотите знать свой уровень - ищите вакансии на мидла, читайте требования, пробуйте устроиться. Получится - значит мидл. Нет - значит не мидл (или поискать компании с требованиями попроще).

    Случаи, когда сеньор в одной компании не может пройти интервью на мидла в другой компании - не редкость, так что тут вопрос не теоретический а чисто практический.
    Ответ написан
    Комментировать
  • Как сделать, чтобы не было возможности вызвать метод через инстанс?

    Maksim_64
    @Maksim_64
    Data Analyst
    Думаю простого способа нет в силу особенностей дизайна. Объект экземпляра класса, как и объект класса, оба имеют полный доступ к пространству имен объекта класса. По этому думаю решение довольно сложное и того не стоит.
    Ответ написан
    Комментировать
  • Почему LeetCode выдаёт ошибку?

    xez
    @xez Куратор тега Java
    TL Junior Roo
    Потому, что вопрос там задается в таком виде:
    class Solution {
        public int[] sortArray(int[] nums) {
            
        }
    }


    Вам нужно реализовать только этот метод.
    Не нужно никакой отсебятины вроде метода main и организации ввода/вывода; это все платформа сделает за вас.

    Ответ, например, может быть таким:
    class Solution {
        public int[] sortArray(int[] nums) {
              Arrays.sort(nums);
              return nums;
        }
    }
    Ответ написан
    1 комментарий
  • Отличия ios backend и web backend?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Никаких отличий.
    Ответ написан
    1 комментарий
  • В чем смысл использования Golang как веб сервер?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    А теперь возьмите не синтетический тест, а реальную задачу сложнее перекладки json'ов, например, с шифрованием, дайте серьëзную длительную нагрузку и посмотрите латентность по процентилям.
    Ответ написан
    Комментировать
  • Как стать начинающим программистом в текущих реалиях?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Куда легче всего пробиться в программирование?

    Это сразу неправильный подход, который не приведёт ни к чему хорошему. Где ниже порог входа, там больше конкуренция, так как этот порог преодолели больше желающих вкатиться.

    Мне вообще всё равно, куда идти в плане доходов (лишь бы на еду хватало)

    Почему тогда именно ИТ?

    поскольку знаю, что я не выдающийся человек ни в чём

    Бизнес выдающихся и не ищет в основном.

    - Теоретический опыт по книгам по Java,

    Подозреваю, что сейчас это знает каждый школьник.

    Школьники сейчас читать-то не умеют многие.

    Что вы мне посоветуете?

    Ещё раз хорошо подумать нужно ли вам именно ИТ. Во-первых, в силу хайпа сюда сейчас ломятся все подряд, соответственно прорваться на первое рабочее место очень непросто. Во-вторых, в отрасли довольно большая концентрация тех, кто программирование любит, с такими тяжело конкурировать, а чем выше будете забираться, тем чаще придётся. Есть множество работ, куда попасть легче и где хватать будет не только на еду.
    Ответ написан
    2 комментария
  • Нормально ли использовать var вместо явной типизации в C#?

    1. Да, это нормально. Сильно легче код писать таким образом. (а иногда и читать, тк меньше слов дублируется. Например совершенно никакой ценности не несёт User user = userRepository.GetUserById(...) или многослойный женерик)

    2.

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

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

    Ты же не задаёшься вопросом, какой тип возвращает какой-нибудь GetUser, ToString, TryParse, FirstOrDefault?

    Если тебе сложно понять смысл кода без типов - значит кто-то плохие имена дал переменным.


    Данный код достаточно сложно разобрать человеку, который не писал это всё с нуля, а был присоединён через 4-5 лет ведения проекта.

    Очень смелое заявление, которое мало чем подкреплено.


    Как по мне, добавление возможности писать var вместо обычного типа было ужасной ошибкой Microsoft. Сам var был добавлен в язык вместе с анонимными типами и предназначался специально для них.

    1. var далеко не только для анонимных типов полезен, хотя с анонимными типами без var работать было бы очень сложно.

    2. Тренд говорит об обратном - автоматический вывод типов сейчас есть практически во всех статически-типизированных языках в том или ином виде.

    Ну и помни ещё, что ты же не в блокноте код пишешь - у тебя есть всякие inlay hints, которые могут рядом с именем переменной показать её тип, а наведя мышку на слово - ты узнаёшь о нём все (имя переменной, сигнатуру метода, документацию, итд)
    Ответ написан
    7 комментариев
  • Что выбрать - Pro 16 i9 или Pro 13 m1 (2020)?

    @D3lphi
    Только Apple Silicon, без вариантов. Макбуки на интел - устаревший хлам, который работает от батарейки 2 часа. М1 с 16 гигабайтами вам хватит с головой. По поводу размера дисплея - подключите монитор, вот серьезно. Не стоит из-за размера экрана брать устаревшую прошку.

    В качестве ответа на коммент Дмитрий могу с уверенностью сказать, что все то, что может потребоваться вам уже давно собранно под aarch64. Так что тут проблем никаких не возникнет.
    Ответ написан
    Комментировать
  • Почему в Go вакансиях требование знания PHP?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Или это просто такое количество кодовой базы на PHP накопилось, которую все дружно решили переписывать на Go

    Скорее всего.

    если да, то почему именно на Go?

    Если компания решилась вложиться в переписывание продукта на другом языке, то у неё на это точно очень веские причины, вероятнее всего - проблемы производительности. В этом случае Go - очевидный выбор. Python, Ruby и JS не дадут никакого выигрыша относительно PHP. Хоть на языках из мира jvm и .net можно писать высокопроизводительный софт, но они скорее решают проблемы сложности огромных кодовых баз. С++ и Rust очень сложны и для прикладного софта применяются только в крайнем случае. Всякая экзотика, типа Erlang, Elixir и Haskell - это вообще редкий случай в энтерпрайзе. Go же одновременно очень прост и ориентирован на высокую производительности.
    Ответ написан
    7 комментариев
  • Какие библиотеки и как использовались для создания Minecraft Bedrock?

    @maksam07
    как без UE и какого-то игрового движка

    А по вашему, игровые движки не = скелет какой-то игры?

    У вас в описании указано "Python". Вы же знаете, что такое библиотека для питон? Или фреймворк для питон (аля Django и пр.). Представьте что UE это django. А джанго это что? Просто инструмент для быстрого и удобного создания полноценного сайта. Можно ли обойтись без джанго? Конечно да! Только сайт придется реализовывать значительно дольше, продумывая весь функционал с нуля, практически с нативного кода питон, самому обрабатывать запросы, коды ответов, роутинг и кучу-кучу всего.

    Как это работает в джанго?
    from django.http import HttpResponse
    
    def hello_world(request):
        return HttpResponse("Hello, World!")

    from django.urls import path
    from myapp.views import hello_world
    
    urlpatterns = [
        path('hello/', hello_world),
    ]


    Как это работает без фреймворка:
    from http.server import BaseHTTPRequestHandler, HTTPServer
    
    class SimpleHTTPRequestHandler(BaseHTTPRequestHandler):
        def do_GET(self):
            self.send_response(200)
            self.send_header("Content-type", "text/html")
            self.end_headers()
            self.wfile.write(b"Hello, World!")
    
    httpd = HTTPServer(('localhost', 8000), SimpleHTTPRequestHandler)
    httpd.serve_forever()


    То же самое и с игровыми движками, но немного сложнее.
    Ответ написан
    3 комментария
  • Как написать мобильное приложение?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Возможно ли написать бекенд для мобильного приложения на андроид и iOS на Django Python?

    Возможно.
    Если да, то что нужно для этого поизучать

    Все тоже самое, что и для разработки бэка для любого другого проекта.
    и на чем писать фронтенд для мобильного приложения?

    На чем умеете, но вот список от простого к сложному:
    - React Native.
    - Flutter.
    - Kotlin/Swift.
    Ответ написан
    1 комментарий
  • Джун QA - это про потенциал и обучаемость, или - когда нужен Мидл с низким окладом?

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    software engineer
    Вы должны понимать, что дело сейчас не в джуниор/мидл первая работа.
    Это вообще вход в профессию. Ваши вопросы по большей степени вообще не относятся к работе, а к какой-то виртуальной реальности.

    Есть множество совершенно разных компаний, в которых используются разные инструменты.
    Требуются навыки работы с определенным инструментарием, чтобы тебе сказали "вот тест кейсы, вот, например, селениум, возьми и пройди все. Если что-то не так, разберись ошибка в тесте или в софте, сделай багрепорт или исправь тест кейс".

    Насколько быстро найти первую работу - СУГУБО индивидуально. Кто-то с первого раза, кто-то за 2 года не может. Нет никаких сроков, есть рекомендации что учить и как готовиться.

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

    Оформляют на работу по разному, что оф. оформление, что самозанятость - дело не в этом, а в том, что за компания, и преференции у них могут быть разные
    Пенсия вас реально интересует прямо сейчас? Или вы считаете что от того, что вас сейчас оформят официально, у вас как-то изменится пенсия?
    Стаж у ИП также само идет, вы работаете на себя, платите пенсионный. За свою жизнь еще успеете поработать в разных вариантах, с разной зарплатой. Это вообще неважный вопрос.

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

    Менторство это не обучение, а кураторство, чтобы было у кого спросить куда копать.
    Недостаток по теории это не незнание теории а недостаток в конкретной области.
    Думающие - это знающие ребята, у которых уже поставлена "база", и думающему подсказать гораздо проще, чем неумехе, который еще и не знает ничего.

    хотят кадр, который может и вэб, тестировать, и мобилки и бэкенд полностью постманом покрыть, и в SQL базами ворочать, и расскажет за топологию сетей и где и куда DNS кэшируется (хотя возможно там работа в вакансии совсем не про это) ну итд...

    Простите, но вы перечислили настолько базовые вещи...
    SQL базовый это маст хев
    топология сетей - ну это же блин база
    DNS кешируется - ну просто все
    веб и бэкенд мало чем отличается в 90% современных приложениях

    Ну то есть как-то ощущение, что вы хотите не на джуна, а в первый класс.

    Джун - это сотрудник, который знает как и умеет работать. Да, мало опыта, да, возможно не хватает знаний в отдельных областях, но это не тот, кого на работе будут учить. Но минимальные знания для работы это довольно большой пласт знаний, и если говорят что QA это самый низкий порог входа, так это потому что IT в целом высокий порог входа, требующая квалификацию.

    Вы бы пошли делать простую хирургическую операцию, типа удаление аппендикса к такому специалисту, как вы в ИТ? Если нет, то думайте.
    Разница между хирургом и ИТ в первую очередь заключается в том, что практика и знания ИТ реально получить дома, сидя у монитора, без общения с реальными пациентами и наработки практики в моргах. Но сами знания все равно должны быть.
    Ответ написан
    Комментировать
  • Где искать работу начинающему без опыта?


    если нет опыта - то работа 8 часов, а я не могу работать больше 4 часов в день ввиду учебы

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


    а за ним - молчание этой компании

    Кто больше всего заинтересован в твоём трудоустройстве?
    Если ты, то тогда надо было звонить работодателю - может документы потерялись у них, может сотрудник, который тебя нанимал, в отпуске или уволился.

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


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

    Это отговорки. Какие-то люди же проходят. Что тебе мешает задрочить литкод, чтобы также всё решать?


    Я совершенно разочарован в системе поиска работы для начинающих специалистов. Возможно, я что-то не понимаю, но как искать работу?

    Таких как ты, без опыта - тысячи и тебе нужно быть лучше, чем все остальные.

    Не нужно ждать, когда работодатель перезвонит - звони сам.
    Ответ написан
    Комментировать
  • Влияет ли наличие сведений о прохождении лечения у психотерапевта на отказ в офере?

    xez
    @xez
    TL Junior Roo
    Если вам необходимо лечение, то беспокоиться о каких-то там банках и гос.учреждениях, явно не стоит.
    Работодателей много, а вы у себя только один.
    Ответ написан
    2 комментария
  • Чат для быстрого получения информации об айти технологиях?

    @ewgenc
    "Ответ получать быстро и от живых людей" - обычно стоит много денег, иногда неприлично много.
    Ответ написан
    Комментировать
  • Как вновь устроиться на работу после года перерыва?

    Jacen11
    @Jacen11
    дальше скрининга дело не заходило
    значит нашли тех кто лучше, значит улучшать навыки

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

    недавно я изучил паттерны и подходы к проектированию микросервисных архитектур

    Возраст: 19 лет

    От 170 000 ₽

    Местоположение: Россия, Самара

    все вместе это просто лютая дичь и и просто ржачь. В Москве после 6 лет вышки на программиста за 50к у нас был хороший результат, а тут такое. Опытный разраб недавно изучил патерны? А который давно их знает бог получается? Кстати "микросервисные архитектуры" на самом деле микросервисная архитектура, думаю и на собесах проскакивают такие мелкие косяки, которые выдают "опыт". Может и так и так можно говорить, но говорят все таки по другому

    Приобретённые навыки:
    какой то странный раздел. Это и есть задачи и чем на проекте занимался

    хотя в резюме хватает мест для правки, думаю основная причина отказов все таки в несоответствии навыков и ваших требований к работе.
    Ответ написан
    Комментировать
  • Что нужно знать junior php backend разработчику?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Что нужно знать junior php backend разработчику?

    То, что указано у заказчика в ТЗ или в вакансии.
    Всем найденным ответам на этом ресурсе - больше 3 лет, возможно уже ситуация заметно изменилась.

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

    С формулирования более конкретных вопросов.
    Ответ написан
    Комментировать