@gogolang

Страница 772 из 1630
Vitaliy
24.01.2018
10:35:06
Сделаешь PR - тебе напишут, что не так ))
можно пару месяцев ждать ревью)

Andrew
24.01.2018
10:37:08
Aleksandr
24.01.2018
11:11:40
для спауна горутин оптимальное количество runtime.NumCPU() или есть какая-то универсальная формула? возможно зависит от системы? поделитесь опытом? я лично посмотрел у меня за ~0.41 маслает numCPU(), за ~0.37 numCPU()*2, слышал там есть какой-то рандом для спауна тредов, но можно ли как-то это предугадать? или не заморачиваться и оставить просто numCPU?

Google
Andrei
24.01.2018
11:13:17
если используешь горутины для всякого io, то можно сколько угодно в разумных пределах

а если выполняешь в них какие то вычисления, то по количеству ядер

Max
24.01.2018
11:16:16
А как подключиться к двум разным базам данных? В обоих quickstartах предлагается анонимный импорт, который перегрузит database/sql. Как разрулить это?

Max
24.01.2018
11:24:53
Да, вопрос снят. Перечитал внимательнее и понял, что анонимный импорт только регистрирует драйвер. Коннект будет по указанному в Open имени.

Aleksandr
24.01.2018
11:47:32
если используешь горутины для всякого io, то можно сколько угодно в разумных пределах
а в разумных пределах - это сколько?) у меня собственно io в базу и происходит

Andrei
24.01.2018
11:52:00
Ну http api на го создают новую горутину на каждый запрос и могут держать десятки тысяч рпс, так что десятки тысяч горутин вполне

Aleksandr
24.01.2018
11:54:17
Aleksandr
24.01.2018
11:57:59
Какую переменную пытаешься подкрутить?
ну сейчас у меня бьет цикл start := 0; start < len(data); start += len(data)/runtime.NumCPU() на горутины по пачкам запросов io

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

Google
Andrew
24.01.2018
11:59:12
ну сейчас у меня бьет цикл start := 0; start < len(data); start += len(data)/runtime.NumCPU() на горутины по пачкам запросов io
Ну да, получается тут нужно ограничивать по узкому месту. Коннекты к БД.

Aleksandr
24.01.2018
12:00:27
Ну да, получается тут нужно ограничивать по узкому месту. Коннекты к БД.
но тут конечно не все так сладко, одновременно может несколько исходных data массивов запросов приходить(

ладно, всем спасибо, будем думать

Daniel
24.01.2018
12:01:34
ну вот @onokonem говорит что миллионами гоняет
я говорю, что тестировал, и в районе 10М горутин производительность резко падает

Dima
24.01.2018
12:46:58
Переезжаю с perl на golang. Что можно прочитать по ?ОПП? Слышал мнение что в го трудно с ооп...

Daniel
24.01.2018
12:47:39
трудно с привычным ооп

с непривычным - все в порядке

Dima
24.01.2018
12:48:13
То есть на mvc расчитывать не приходится?

Alexander
24.01.2018
12:48:39
а при чем тут mvc и ооп ?

Egor
24.01.2018
12:49:11
Ivanov
24.01.2018
12:49:14
есть куча mvc фреймворков

Dima
24.01.2018
12:49:36
есть куча mvc фреймворков
Мне нужен свой велосипед

Ivanov
24.01.2018
12:49:36
точнее не куча) но есть

Dima
24.01.2018
12:50:13
после perl 5 - без разницы) мнения о ООП на нём не сложишь))
На perl ООП это блеснутые грабли, задолбали в корень

Daniel
24.01.2018
12:50:50
но именно для перловика никаких новостей нет, насколько я помню

Marlik
24.01.2018
12:50:56
Мне нужен свой велосипед
Вот здесь можно почитать. https://golang.org/doc/articles/wiki/

Dima
24.01.2018
12:51:29
а при чем тут mvc и ооп ?
Мне такая схема нрацца, мне все равно будет ли это через ООП или как то иначе без разницы

Daniel
24.01.2018
12:51:42
ооп тут перпендикулярно

Artem
24.01.2018
12:53:04
чет кажется для мвс подход гоши будет куда лучше классики, тут смысл понятия "имеет" куда важнее, чем "является".

Marlik
24.01.2018
12:54:52
Мне такая схема нрацца, мне все равно будет ли это через ООП или как то иначе без разницы
Ещё вот https://habrahabr.ru/post/329582/ а так конечно эффектив го, готур...

Google
Elena
24.01.2018
13:10:52
Всем привет! Нарисовали к GoppherCon Russia серию отечественных гоферов, так что ловите тематический стикерпак: https://t.me/addstickers/GopherConRu

Elena
24.01.2018
13:17:11
водка - яд ? А в балетной пачке уже есть

Александр
24.01.2018
13:30:02
а где гофер в панике?

Александр
24.01.2018
13:32:32
водка - яд ? А в балетной пачке уже есть
нарисуйте бегающего по кругу гофера с облачком panic и утешающего гофера с надпись recover ?

Stanislav
24.01.2018
13:36:42
Пацаны, подскажите, а что указывается в `` ?

type Person struct { FirstName string db:"first_name" LastName string db:"last_name" Email string }

Как это правильно читать

Marlik
24.01.2018
13:37:00
теги?

Stanislav
24.01.2018
13:37:15
А кто и как их обрабатывает?

Andrey
24.01.2018
13:38:10
@vorona_karabuta Лена, привет! не знал что вы уже и по go конфы проводите ?

Александр
24.01.2018
13:38:30
А кто и как их обрабатывает?
через рефлексию вычитывают

обрабатывает либая либа которой это надо ?

Stanislav
24.01.2018
13:38:48
Понял, спс, пойду гуглить)

meehalkoff✪
24.01.2018
13:56:43
Друзья. Я уже весь мозг себе сломал. Есть кучка файлов в дирректории. (~ 0-10000) Файлы периодически модифицируются. В директорию периодически сохраняются новые файлы. Задача следующая. Вылавливать новые файлы в дирректории. Вот так пробовал даты собрать: func statTimes(name string) (atime, mtime, ctime time.Time, err error) { fi, err := os.Stat(name) if err != nil { return } mtime = fi.ModTime() stat := fi.Sys().(*syscall.Stat_t) atime = time.Unix(int64(stat.Atim.Sec), int64(stat.Atim.Nsec)) ctime = time.Unix(int64(stat.Ctim.Sec), int64(stat.Ctim.Nsec)) return } Но mtime всегда равен ctime. Фс ext4. Мб нужно флаг монтирования раздела какой то?

meehalkoff✪
24.01.2018
14:01:54
Чёрт, нужен не ctime, а crtime

Чёрт, нужен не ctime, а crtime
а его нету.. не умеет ext4 похоже в эту фичу

Google
meehalkoff✪
24.01.2018
14:29:47
debugfs только ?

meehalkoff✪
24.01.2018
14:39:23
использую github.com/rjeczalik/notify
похоже то что нужно

Alex
24.01.2018
14:40:02
нариканий пока нет, используется просто

Admin
ERROR: S client not available

meehalkoff✪
24.01.2018
14:52:35
нариканий пока нет, используется просто
пока искал решение этого вопроса, переписал утилиту и теперь crtime не очень то и нужен, как и notify ?

Гриша
24.01.2018
15:15:33
Подскажите как при маршалинге сделать чтобы data была пустым массивом, а не null type Response struct { Data []string `json:"data"` }

Alexander
24.01.2018
15:18:16
при маршалинге или анмаршалинге?

Гриша
24.01.2018
15:22:43
маршалинге

сейчас выходи data: null, а нужно data: []

Alexander
24.01.2018
15:23:17
Тогда нужно просто заполнить это поле в структуре пустым слайсом

Илья
24.01.2018
15:23:25
return Response{Data: []string{}}

или Response.Data = make([]string,0)

Гриша
24.01.2018
15:24:34
Ок, спасибо. Надеялся можно при обявлении структуры

Andrew
24.01.2018
15:26:18
Ок, спасибо. Надеялся можно при обявлении структуры
r := NewResponse() - считай это объявлением :) В самой функции инициализируешь что хочешь.

Гриша
24.01.2018
15:27:59
r := NewResponse() - считай это объявлением :) В самой функции инициализируешь что хочешь.
Не совсем понял, о чем. Я Respons получаю как параметр, в RPC

Имеется ввиду создание нового через NewResponse?

Andrew
24.01.2018
15:29:18
Да, думал создаёшь с нуля.

Гриша
24.01.2018
15:56:25
А если задать вопрос по-другому, как у структуры можно задать значения полей «по умолчанию»

Andrei
24.01.2018
15:58:11
А если задать вопрос по-другому, как у структуры можно задать значения полей «по умолчанию»
никак, если только сторонняя либа не поддерживает этот функционал через тэги

Google
Alexander
24.01.2018
15:58:39
Обычно делается функция-конструктор, которая заполняет структуру значениями по умолчанию.

Гриша
24.01.2018
15:59:59
Я понял, спасибо

Alexander
24.01.2018
16:00:43
функция-фабрика
Есть действительно какая то разница в терминологии? (это не с целью придраться, мне правда кажется, что это одно и то же)

Aleksandr
24.01.2018
16:02:05
просто разные вещи

Alexander
24.01.2018
16:02:36
Ок, только в Го нет конструкторов-методов.

Aleksandr
24.01.2018
16:04:27
Michael
24.01.2018
16:07:02
https://golang.org/doc/effective_go.html#composite_literals

Aleksandr
24.01.2018
16:09:55
брехня!
по ссылке фабричный метод называют конструктором. это не брехня, а неграмотность

Alexander
24.01.2018
16:10:36
И сам сказал "фабричный *метод*" :)

Aleksandr
24.01.2018
16:10:59
и?

метод, а что еще?

Alexander
24.01.2018
16:11:22
Это функция, а не метод

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