Size: a a a

2020 April 26

RS

Roman Sharkov in Go-go!
Александр Попов
ну это какие то оптмизации до которых врятли дойдет - по факту уже
это не оптимизации. Если мы просто хотим инициализировать пустой срез, то var s []T даст нам его без аллокаций. Никакой добавленной стоимости.
источник

DP

Daniel Podolsky in Go-go!
Локоть Анатолий
Не всегда что?
Есть случаи, когда предварительное выделение просто зряшное прописывание нулей
источник

RS

Roman Sharkov in Go-go!
Daniel Podolsky
Какой в ws req-rep? такой же, как в Http/2 стримах
а что мешает реализовать REQ-REP поверх WS?!
источник

АП

Александр Попов... in Go-go!
Roman Sharkov
это не оптимизации. Если мы просто хотим инициализировать пустой срез, то var s []T даст нам его без аллокаций. Никакой добавленной стоимости.
ну если мы сделаем s := ... то же горя не будет - как удобнее будет по месту
источник

а

а кто это in Go-go!
Roman Sharkov
это не оптимизации. Если мы просто хотим инициализировать пустой срез, то var s []T даст нам его без аллокаций. Никакой добавленной стоимости.
а нафига нам пустой срез
источник

RS

Roman Sharkov in Go-go!
Александр Попов
ну если мы сделаем s := ... то же горя не будет - как удобнее будет по месту
возможна аллокация пустого массива. Вопрос, зачем?
источник

RS

Roman Sharkov in Go-go!
а кто это
а нафига нам пустой срез
не поверите, но такие ситуации бывают
источник

DP

Daniel Podolsky in Go-go!
Roman Sharkov
а что мешает реализовать REQ-REP поверх WS?!
Коллега, не тупите :)
источник

а

а кто это in Go-go!
Roman Sharkov
не поверите, но такие ситуации бывают
ну рано или поздно он либо будет не пустым, либо вообще не нужен
источник

RS

Roman Sharkov in Go-go!
Daniel Podolsky
Коллега, не тупите :)
При всём уважении.. WS это просто full-duplex труба.. заливаешь в одну сторону - выливается на другой.

Я уже писал и multiplexed REQ-REP поверх WS, и просто REQ-REP

И небольшое преимущество в том, что connection аутентифицируется 1 раз при создании, а дальше у нас сессия ассоциируется с сокетом, и валидировать её не надо.

HTTP-же stateless, следственно в каждом из запросов нам обязательно нужно валидировать сессию либо криптографически (JWT) либо с помощью look-up таблицы (session ID).

однако у WS из-за statefulness’а проблемы возникают на уровне load balancing’а
источник

АП

Александр Попов... in Go-go!
источник

АП

Александр Попов... in Go-go!
тут кстати не понятно, по идеи мы скопировали слайс но указатель на внутренний массив - без изменений
источник

АП

Александр Попов... in Go-go!
но s снаружи не заполняется
источник

zl

ziggy lucid in Go-go!
все, прояснил наконец-то для себя вопрос про nil-значения
правильный ответ - nil-слайс инициализируется автоматически при первом его изменении и не вызывает паники в циклах по нему
как-то "zero value is ready to use" вводит в заблуждение, что память таки выделяется, раз оно живое и шевелится при тыканье палочкой
https://play.golang.org/p/FspmC6jT13n
источник

ЛА

Локоть Анатолий... in Go-go!
Александр Попов
но s снаружи не заполняется
Потому что слайс это структура, и она скопировалась через аргумент
источник

а

а кто это in Go-go!
Локоть Анатолий
Потому что слайс это структура, и она скопировалась через аргумент
слайс это структура с указателем
источник

АП

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

АП

Александр Попов... in Go-go!
пересоздание внутреннего указателя там явно нет
источник

а

а кто это in Go-go!
ziggy lucid
все, прояснил наконец-то для себя вопрос про nil-значения
правильный ответ - nil-слайс инициализируется автоматически при первом его изменении и не вызывает паники в циклах по нему
как-то "zero value is ready to use" вводит в заблуждение, что память таки выделяется, раз оно живое и шевелится при тыканье палочкой
https://play.golang.org/p/FspmC6jT13n
append в данном случае инициализирует слайс
источник

ЛА

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