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

Всем привет, уважамый чат! Какой из подходов более “go-way” Прокидывать контекст через

кучу функций куда нужно…

Или можно его сделать переменной пакета и просто ссылаться эту переменную где нужно?

17 ответов

40 просмотров

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

root-Lunev Автор вопроса
Dmitry
Нельзя контекст сделать глобальной переменной ибо ...

Понимаю. Хотел в нужном месте потом этот контекст просто cancel’ить

прилетел запрос следом и перезаписал контекст ?

root-Lunev Автор вопроса
Alexey Ermakov
прилетел запрос следом и перезаписал контекст ?

Нет, это скорее глобальный контекст, который отвечает за graceful shutdown Не контекст запроса

root Lunev
Нет, это скорее глобальный контекст, который отвеч...

Короче через функцию таскай аргументом и не будет вопросов. Просто контест в го есть тупо property bag, но на кой то хрен в него же решили пихать cancellation token и поделали апишку под это дело и получилась какая каша ....

Dmitry
Короче через функцию таскай аргументом и не будет ...

Первопричина контекста - отмена операций и делайны, прокидывать через него значения вещь очень ситуативная и близкая к анти-паттерну

Royal Cat
Первопричина контекста - отмена операций и делайны...

Да все прокидывают, например куча http фреймворков.

Dmitry
Да все прокидывают, например куча http фреймворков...

А если все с крыши прыгать будут, мы тоже будем? 😄 Но справедливости ради соглашусь, что context.WithValue подразумевает использование контекста для прокидывания разносортных "глобально-локально" доступных данных Для неискушенных JavaEE - что-то типа @RequestScoped бинов

Dmitry
Да все прокидывают, например куча http фреймворков...

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

А почему token отмены НЕ должен быть отдельным аргументом , а должен быть впихан в контекст ?) Он особенный?)

Dmitry
А почему token отмены НЕ должен быть отдельным арг...

Да, он особенный, это его предназначение) Прочитал что такое CancelationToken, контекст его не прокидывает, его в принципе не существует, context полностью заменяет его

Royal Cat
Да, он особенный, это его предназначение) Прочитал...

Ну да, заменяет. Но одновременно этот же контекст реализует property bag паттерн... Где не только такие вот токены могут быть, одновременно (!) с этим этот класец имеет api для работы с токенами отмены (хм?)

Dmitry
Ну да, заменяет. Но одновременно этот же контекст ...

property bag обычно стараются типизировать, его логичнее реализовывать заэмбедив контекст в свой собственный контейнер

Royal Cat
property bag обычно стараются типизировать, его ло...

Ну вот контекст го не следует этому.

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

Royal Cat
Property bag выглядит как то что стоит реализовать...

Покуда есть контекст который уже имеет это никто не будет заморачиваться.

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта