Size: a a a

2021 June 04

JL

John Locke in Go-go!
Приложение не только под видновс однако
источник

JL

John Locke in Go-go!
И проще будет генерить именно исходники
источник

AT

Anthony Telyshev in Go-go!
источник

JL

John Locke in Go-go!
Выглядит очень симпатично
источник

JL

John Locke in Go-go!
Спасибо, проверю позже
источник

Lk

Liton khan in Go-go!
what made you choose other libs though
источник

PK

Phil Kulin in Go-go!
Я как всегда со странными вопросами по основам. У меня есть асинхронная передача сетевых пакетов куда-то с теоретическим ответом. Отдельная горутина разруливает посылку, получение ответа и попытки. Ответ шлет в канал. Один канал на одну полную посылку. Тот, кто попросил отправить, блокируется на канале и ждет в него ответа.  Канал создается синхронный. Иногда, тот, кто попросил, теряет интерес и "уходит". Так иногда нужно. Поэтому в горутине, разруливающей посылку, для ответа полный select/case/default и потом close.

Всё хорошо.

Но на тесте я вдруг понял, что мне не проверить, что ответ принят. Потому что канал никто не случает во время посылки. Или в тесте надо городить горутины. Или надо делать буферизированный канал только для теста. Что делать?
источник

DF

Durty Free in Go-go!
Мокать мок, ради мока?
источник

ЛА

Локоть Анатолий... in Go-go!
если тест требует другого поведения, то обычно изменяемое поведение выносится в функцию/интерфейс.
затем на этот интерфейс/функцию пишется мок, с помощью которого можно проверить все, что угодно.
но сложно сказать без конкретного кода, может все куда проще обернется 🙂
источник

PK

Phil Kulin in Go-go!
Да блин, там код с очередью сообщений
источник

AS

Andrei 🦉 Sergeev in Go-go!
а вам точно здесь нужна отдельная горутина и канал? выглядит как проблема из-за переусложнения
источник

PK

Phil Kulin in Go-go!
У меня есть запрос API на отправку. Функция работы с устройством по сети принимает это и пытается отправить. При этом вокруг делается что-то ещё.

Другими словами, мне нужна асинхронная отправка с ответом.
источник

с

сонная википедия... in Go-go!
выглядит так, что надо отдавать loop'у коннекта запросы с контекстом и каналом для ответа
после чего можно отменить запрос контекстом
источник

PK

Phil Kulin in Go-go!
Да. Выглядит так. Но это уже выглядит сложным. При довольно простом действии
источник

с

сонная википедия... in Go-go!
это банально
источник

AD

Alex Dok in Go-go!
А нельзя сразу резать на 40к частей?)
источник

с

сонная википедия... in Go-go!
сложно это когда у вас сообщения без порядка приходят, там веселее
источник

DF

Durty Free in Go-go!
Смотря какой сервак, смотря какой проект.
источник

PK

Phil Kulin in Go-go!
Хорошо, упростим. Тот, кто просил отправить сразу блокируется на ожидание ответа. В итоге в тесте я или это блокирование должен в горутину пихнуть, или опять таки канал сделать буферизованным
источник

AS

Andrei 🦉 Sergeev in Go-go!
в тесте вам никто не мешает также использовать горутины / примитивы синхронизации
источник