@gogolang

Страница 757 из 1630
Oleh
20.01.2018
11:24:12
в 150 воркеров делал

Andrew
20.01.2018
11:24:38
Тогда эта норма™

Google
Andrew
20.01.2018
11:25:11
2 Гб для 150 воркеров

Oleh
20.01.2018
11:25:36
2 Гб для 150 воркеров
так оно же не сразу а постепенно

накопливалось

снимай профиль, смотри где накодил мусора, клиент не кеширует данные
а конекты? там же вроде можно переиспользовать конекты, а мне это не нужно

Илья
20.01.2018
11:29:13
а какой утилитой смотреть?
https://blog.golang.org/profiling-go-programs

Oleh
20.01.2018
11:31:43
Slach
20.01.2018
11:39:37
указатель на структуру
о! спасибо дорогой человек а тыкните носом где это написано? ну то есть, почему указатель на структуру имплементирует интерфейс, а сама структура нет?

Илья
20.01.2018
11:40:43
если метод с * - то он только для указателя

Hamidumi
20.01.2018
11:40:55
func (c *Conn) SetLogger(l Logger) { c.logger = l }

Ilya
20.01.2018
11:43:54
Google
Slach
20.01.2018
11:45:21
func (c *Conn) SetLogger(l Logger) { c.logger = l }
погодите l Logger это интерфейс c - это указатель c.logger это что? с.logger это ж поскольку структура просто отрезолвленый указатель т.е. все равно что мы бы записали *c.logger ? нет? я всегда думал что в golang это сделали чтобы лишних звездочек не писать и это синтаксический сахар

Ilya
20.01.2018
11:50:39
strings.Quote ?
нету такого

Mykyta
20.01.2018
11:52:04
Ilya
20.01.2018
11:52:48
strconv.Quote
благодарю

Slach
20.01.2018
11:57:33
https://stackoverflow.com/a/13533822/6119618
ну так я о чем??? func (c *Conn) SetLogger(l Logger) { // c.logger это (*c).logger элемент структуры Conn // l это имплементация интерфейса c.logger = l } я не понимаю, почему если аргумент функции это интерфейс, но при этом функция это метод для структуры которая вроде как "указатель" то реализацию интерфейса надо передавать через указатель? вот об этом где написано?

Michael
20.01.2018
12:01:56
what was that?

Slach
20.01.2018
13:06:20
ты не понял, проблема в твоей реализации logger
я действительно не понимаю ;) пожалуйста поясни, это очень важно для меня, потому что такие вещи в языке, которым пользуешься надо знать ту ссылку которую ты привел я читал там тоже самое там говорится про то что если v *Type v.Func() интерпретируется как (*v).Func() pointer но я то про интерфейс а не про указатель на тип я еще раз спрашиваю, объясните мне если у меня есть функция func(c *MyStruct) SetInterfacer(i MyInterface) { c.interfacer = i } почему если у меня есть какая то имплементация MyInterface в виде экземпляра структуры (не указателя) я должен в SetInterfacer передавать именно указатель на структуру? почему она не может быть просто аллоцирована на стеке если даже у меня c это pointer receiver ?

Илья
20.01.2018
13:21:10
не знаю как тебе более абстрактно это пояснить :)

еще раз, проблема не в SetLogger, а в Logger, если ты метод без ссылки на ресивер объявишь (не мутирующий), то сама структура будет реализовывать интерфейс

Slach
20.01.2018
13:33:25
не знаю как тебе более абстрактно это пояснить :)
вроде нагуглил https://medium.com/@agileseeker/go-interfaces-pointers-4d1d98d5c9c6 так, щас осталось переварить вот кажется ключевая фраза статьи the parameter type (a value or pointer) passed to a method/function that accepts an interface should match the implementing object’s method receiver короче, я так понимаю что поскольку у меня func (c *MyType) funcName()... pointer receiver и я передаю интерфейс в качестве параметра то я должен передавать его через ссылку если будет просто func (c MyType) funcName() то можно передавать и значени и через ссылку и она будет dereference для ссылки сама делать это все нужно для того чтобы когда я вызывал c.interfacer.InterfaceMethod() у меня правильно делалось dereference для с.interfacer? так?

короче я понял окончательно если имплементация передаваемой реализации интерфейса сделана as value func (c Type) funcName() то в функцию которая на вход принимает интерфейс я передаю саму структуру или указатель на структуру пофигу а если имплементация интерфейса сделана as pointer func (c *Type) funcName тогда я эту имплементацию интерфейса как pointer и должен передавать и уже не важно что там в у меня в мутируемом объекте func (d *ReceiverType) SetInferfacer(newValue MyInterface) { } или func (d ReceiverType) SetInferfacer(newValue MyInterface) { }

Andrew
20.01.2018
14:45:07
Воу воу откуда все бегут?

Michael ?
20.01.2018
14:46:07
Лично я - из ноды ?

Google
Олег
20.01.2018
14:53:54
Воу воу откуда все бегут?
кто-то пропиарил как обычно)

Vasily Romanov
20.01.2018
14:54:53
в чате моего курса дали ссылку

Konstantine
20.01.2018
15:38:53
Gogland оказывается уже релизнулся и стал платным. Какая есть нормальная альтернатива бесплатная?

No
20.01.2018
15:40:50
Atom, liteide , даже видел плагин для Notepad++ )

Alexander
20.01.2018
15:41:47
Есть плагин для Idea

Konstantine
20.01.2018
15:42:31
Atom дрисня дикая. Раз под Notepad++ есть, надо будет глянуть на Sublime Text, может туда просто пересяду, ибо лишь временами нужно что-то отредактировать и подебажить.

Konstantine
20.01.2018
15:51:43
В vscode хороший дебагер.
Надо будет попробовать, да.

Daniil
20.01.2018
15:52:14
К слову, начал пересаживаться на емакс. Люди, тут все реально руками писать приходится

Vladislav
20.01.2018
15:52:47
Почему емакс, а не вим? Для вим, вроде, хороший плагин.

Daniil
20.01.2018
15:53:42
Почему емакс, а не вим? Для вим, вроде, хороший плагин.
Вим такая сложная штука. Вроде все удобно, но на хоткеях быстрее и привычней.

А плагин сейчас, на высоте

Maks
20.01.2018
15:56:10
Gogland оказывается уже релизнулся и стал платным. Какая есть нормальная альтернатива бесплатная?
В чём проблема использовать сервер лицензий? В сети уже есть. Сам находил, вроде работают без нареканий. Если из соображений проверок со стороны органа ответственного за пиратство, то почти все редакторы имеют ограничение на коммерческое использование. Sublime не исключение

Vladislav
20.01.2018
15:57:05
Так купи.

Maks
20.01.2018
15:58:15
Notepad++ бесплатен, да и только. LiteIde тоже, судя по всему

Konstantine
20.01.2018
15:58:53
Так купи.
Ради пары домашних проектов тратиться на лицензию? Нахуй оно надо.

Google
Maks
20.01.2018
16:01:09
А в чем проблема купить?
Нет проблем, просто человеку нравилось, что она бесплатна

Vladimir
20.01.2018
16:01:26
Konstantine
20.01.2018
16:01:29
Если оно опенсорс, запроси опенсорс лицензию
Насколько я знаю - для личного использования у jetbrains'ов все равно нужно покупать лицензии. Бесплатные версии есть у IDEA и PyCharm.

Vladimir
20.01.2018
16:02:10
Насколько я знаю - для личного использования у jetbrains'ов все равно нужно покупать лицензии. Бесплатные версии есть у IDEA и PyCharm.
Если опенсорс софт то ее могут выдать вроде как. А у идее плагин на го ставится и получается тот же goland

Vladimir
20.01.2018
16:02:46
Konstantine
20.01.2018
16:03:16
Он там один, от jetbrains
Еще до того, как ребята из дб делали свой уже сторонние ребята делали свой плагин.

Vladimir
20.01.2018
16:05:05
Еще до того, как ребята из дб делали свой уже сторонние ребята делали свой плагин.
Но кажется в идее сейчас доступен ровно один плагин, от jetbrains

Andrew
20.01.2018
16:51:51
Приветствую! Подскажите, почему обязательно нужно что нибудь послать в канал, чтобы тесты отработали?





По моему мнению, defer Close должен закрыть канал, и горутина завершится. Однако, это все равно не нравится флагу -race при запуске тестов

Shane
20.01.2018
18:10:42
Привет. Ребят можете подсказать фреймворк чисто по работе с api. Сокеты, аутентификация, сервисы. На клиенте react

Michael
20.01.2018
18:12:00
gramework

Страница 757 из 1630