Size: a a a

2019 December 29

DP

Daniel Podolsky in Go-go!
Roman Dymchenko
нет, на ошибке мы можем выходить из функции, но наличие ошибки не гарантирует пустой resp.Body
точно?
источник

RD

Roman Dymchenko in Go-go!
Точно
источник

DP

Daniel Podolsky in Go-go!
а в каком случает там непустой боди?
источник

RD

Roman Dymchenko in Go-go!
ммм. со стандартным клиентом - ни в каком, пожалуй.
источник

DP

Daniel Podolsky in Go-go!
Roman Dymchenko
ммм. со стандартным клиентом - ни в каком, пожалуй.
вот и я что-то такое помню… но пользуюсь редко, мог и забыть
источник

ВС

Владимир Семиков in Go-go!
Roman Dymchenko
resp, err := http. ...
if resp != nil {
 defer resp.Body.Close()
}
if err != nil {
...
источник

ВС

Владимир Семиков in Go-go!
Я честно говоря не совсем понимаю что именно мне панику выдает
источник

DP

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

ВС

Владимир Семиков in Go-go!
Спасибо
источник

RC

Roman Covanyan in Go-go!
Daniel Podolsky
не надо так нервничать, коллега

воркер пулы не нужны

обычно ограничивать потребление ресурсов следует на шаг раньше, чем непосредственно обработка.

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

DP

Daniel Podolsky in Go-go!
Roman Covanyan
да, такие комментарии поверхностны. потому что нет понимания инструмента "пул воркеров". вместо того, чтобы запустить n горутин советовать ограничивать потоки данных и управления "где то еще" - это что то вроде совета программировать не на го, а на баше.
ну или вы не дали себя понять, о чем ваш оппонент.

правда в том, что на этапе обработки ограничивать потребление обычно поздно - ни ошибку вернуть, ни потоком порулить.
источник

RD

Roman Dymchenko in Go-go!
Daniel Podolsky
вот и я что-то такое помню… но пользуюсь редко, мог и забыть
Долго пытался сообразить, где первоначально я увидел рекомендацию явно проверять response на nil, причём до проверки ошибки. Нашёл:
http://devs.cloudimmunity.com/gotchas-and-common-mistakes-in-go-golang/#anameclose_http_resp_bodyaclosinghttpresponsebody
источник

DP

Daniel Podolsky in Go-go!
это авторитетный источник, да. спасибо!
источник

RC

Roman Covanyan in Go-go!
Daniel Podolsky
ну или вы не дали себя понять, о чем ваш оппонент.

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

DP

Daniel Podolsky in Go-go!
Roman Covanyan
если все такие конвееры находятся в рамках одного сервиса, то не поздно. так же не поздно, если инфраструктура не позволяет внешнее управление мощностью очередей.
мы зашли на второй круг. давайте сворачиваться, а?
источник

RC

Roman Covanyan in Go-go!
а с чем сворачиваться то? какое резюме? пул воркеров редкий паттерн, нужен для искусственного ограничения ресурсов на обработку потока данных, ниже, чем доступно процессу.
источник

DP

Daniel Podolsky in Go-go!
и от меня добавление: если вам показалось, что в go вам нужен пул - скорее всего, вы ошибаетесь, поглядите на архитектуру еще раз
источник

RC

Roman Covanyan in Go-go!
Александр Попов
а? :) Мы же тратим время на создание гоурутины, выделяем память, инициализируем внутри что-то (ну например библиотека по парсингу DOM)
тратим только один спан 8кб на одну горутину, это в целом действительно довольно быстро. но это при условии, что у нас оперативная память резиновая.
источник

RC

Roman Covanyan in Go-go!
Daniel Podolsky
и от меня добавление: если вам показалось, что в go вам нужен пул - скорее всего, вы ошибаетесь, поглядите на архитектуру еще раз
ок, согласен.
источник

IK

Ilya Kaznacheev in Go-go!
Уважаемые, а как работать с документацией, если в проекте несколько сервисов на разных языках, например?
источник