@gogolang

Страница 1211 из 1630
Dmitry
05.07.2018
23:13:17
если архитектура проекта позволяет это без переписывания кода(или незначительного) то говорят что она хорошо горизонтально масштабируется

под железом я понимаю как подключение железа напрямую так и посредством сетей

Zaur
05.07.2018
23:15:10
Аа, всё, я кажется врубился ? спасибо

Dmitry
05.07.2018
23:16:48
Аа, всё, я кажется врубился ? спасибо
вот тут почитай еще: http://highload.guide/

Google
/dev/null
06.07.2018
05:38:46
Ребят, у меня такой вопрос. Как будет правильно реализовать следующие: Есть куча xml файлов и инфой на 15Мб. Хочу спарить инфу с документов в хеш таблицу а потом в цикле писать из этой таблицы в монгу. Насколько правильно это будет? Или стоит каждый отдельный документ писать в базу, а не раздувать ОЗУ?

Ivanov
06.07.2018
06:06:24
Зачем хеш таблица? Пиши сразу в монгу, имхо

Nick
06.07.2018
06:12:59
Лучше писать батчами определенного размера

V
06.07.2018
06:16:01
Асинхронно парсить, разбить на несколько асинхронных батчей) конвеер

Nazary
06.07.2018
08:19:39
бляха, я чёт туплю есть type TName struct { name string rsp []string } и есть var LIST = make(map[string]TName)

как в LIST[id] работать с полем rsp?

Lesha
06.07.2018
08:20:44
Rsp

Nazary
06.07.2018
08:20:45
append, к примеру

Lesha
06.07.2018
08:21:43
Сделай с большой буквы rsp LIST[id].Rsp = append(LIST[id].Rsp, ...)

Ну лучше указатель (на TName) хранить и сначала из мапы получить его

Nazary
06.07.2018
08:23:01
тогда тоже большая буква?

Lesha
06.07.2018
08:23:07
да

Поля с большой буквы - public с маленькой - private

Google
/dev/null
06.07.2018
08:24:23
Асинхронно парсить, разбить на несколько асинхронных батчей) конвеер
Кстати да, парсить в несколько потоков… даже не подумал про это, спасибо

Nazary
06.07.2018
08:31:35
Поля с большой буквы - public с маленькой - private
ошибка cannot assign to struct field LIST[id].Rsp in map

Lesha
06.07.2018
08:32:35
obj, ok := LIST[id]

Если указатель, то сразу меняешь Rsp, если по значению, то обратно закидывай

GoodMoodDealler
06.07.2018
11:25:15
Я создаю массив каналов var ch [10]chan, как мне переопределить первый эллемент и сделать его буфферизированным?

Илья
06.07.2018
11:25:43
никак

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

GoodMoodDealler
06.07.2018
11:29:54
https://play.golang.org/p/4ZV4HTDofo9
У меня ругается на такую запись

Илья
06.07.2018
11:30:12
на плейграунде не ругается

GoodMoodDealler
06.07.2018
11:31:36
А не, все норм, спасибо)

Александр
06.07.2018
13:13:07
Всем привет, есть те кто работал с HomeKit?

Artem
06.07.2018
14:41:42
всем привет IDs := r.URL.Query()["id"] возвращает мне слайс ["1,2,3"] с одной строкой как можно сразу получить слайс интов? [1, 2, 3] не нашел примеров делать split потом по слайсу как то костыльно(

а приходит /?id=1,2,3

Artem
06.07.2018
14:43:42
эх(

Alexey
06.07.2018
15:45:56
Привет! Нужно смоделировать json в котором некоторые поля полиморфоные. Например, может быть просто логин, а может быть имя и фамилия: "actor": { "type": "login", "login": "user" }и "actor": { "type": "fullName", "firstName": "John", "secondName": "Doe" }как бы это все замапить на структуры чтобы было удобно и парсить и создавать такие структуры. Нашел только такое - http://eagain.net/articles/go-dynamic-json/ , но выглядит все это как ужасный костыль. Подскажите как сделать красиво :)

Daniel
06.07.2018
15:46:23
никак

Daniel
06.07.2018
15:46:54
красиво не будет

Google
Daniel
06.07.2018
15:47:11
реально вариантов два

Мерлин
06.07.2018
15:47:19
это еще хуже )))
можно ещё хуже — разбирать map[string]interface{}

Alexey
06.07.2018
15:47:31
Daniel
06.07.2018
15:47:38
или сделать структуру со всеми полями, или парсить в два прохода

Мерлин
06.07.2018
15:48:12
мне нужно лучше, а не хуже
лучше никак ну, можно сделать разные наборы структур, а потом json iter-ом брать поле type и применять нужную структуру

Daniel
06.07.2018
15:48:15
нет базовой поддержки полиморфных структур

Alexey
06.07.2018
15:48:26
прямо канал скорби :(

спасибо!

Daniel
06.07.2018
15:48:46
у всех есть свои недостатки

Alexey
06.07.2018
15:49:57
у всех есть свои недостатки
Не, я не набрасываю. Понятно, что это мой выбор, но очень уж некоторых базовых вещей не хватает

Daniel
06.07.2018
15:51:18
на самом деле - не надо просто делать такую структуру json, и это хорошо, что она так плохо поддерживается в go - меньше будет таких уродцев появляться

Alexey
06.07.2018
15:52:08
на самом деле - не надо просто делать такую структуру json, и это хорошо, что она так плохо поддерживается в go - меньше будет таких уродцев появляться
ну иногда полиморфизм все-таки встречается и моделировать его суперпозицией полей это хм... спорное решение.

Daniel
06.07.2018
15:52:25
полиморфизм - зло

Alexey
06.07.2018
15:52:40
полиморфизм - зло
это уже демагогия )

Daniel
06.07.2018
15:53:07
в некотором смысле - да. но - он ведь и правда зло.

Alexey
06.07.2018
15:54:34
в некотором смысле - да. но - он ведь и правда зло.
это демагогия, в случае когда тебе нужно запросить существующий АПИ которые ты не можешь изменить. Мне нужен просто инструмент

Daniel
06.07.2018
15:54:53
тогда - суперпозиция

которая тоже зло, но меньшее

Google
Alexey
06.07.2018
15:55:24
это ужасно в плане типов.

Daniel
06.07.2018
15:55:43
а полиморфизм не ужасен?

Alexey
06.07.2018
15:55:49
нет разницы между этим и map[string]string

Daniel
06.07.2018
15:56:06
разница, все же, есть

Alexey
06.07.2018
15:56:34
она только в количестве возможных ошибок, но не в факте их присутствия/отсутствия

Alexandr
06.07.2018
15:57:12
Гайз, а не знает кто-нибудь скелет проекта на Github на Go с Oauth2 для аутентификации и сессиями - чтобы его можно было за основу взять для небольшого проекта?

Admin
ERROR: S client not available

Alexey
06.07.2018
15:59:07
но это вопрос структуры json, а не языка
но ведь мне эти структуры нужно как-то в языке описать

я бы хотел чтото типа data User = UserWithLogin | UserWithName | Anonymous

и поддержку сериализации

Alexander
06.07.2018
16:13:28
Кто как конфиги хранит в приложениях? ini? json? yaml?

Fedor
06.07.2018
16:14:41
ENV

Jentry
06.07.2018
16:14:42
какая разница, viper все умеет, идеально из env подсасывать

Alexander
06.07.2018
16:18:15
ENV
типо через переменные окружения? а если их 25?

Fedor
06.07.2018
16:18:46
А какая разница, в bashrc кинул и забыл

Mike
06.07.2018
16:19:30
Кто как конфиги хранит в приложениях? ini? json? yaml?
да хоть томл, что тебе удобнее, то и бери, не?

Alexander
06.07.2018
16:20:15
да хоть томл, что тебе удобнее, то и бери, не?
Так-то да, для себя выбрал yaml, но возможно есть best practices, хех)

Mike
06.07.2018
16:21:38
ну обычно тебе нужна какая-то хуйня и ты добавляешь энв, потом их становится слишком много, ты охуеваешь, особенно если подменять туда-сюда надо и тестить, кладешь в джейсон, а потом если конфиг усложняется, в зависимости от привычек, или ничего не делаешь, или берешь что-то что попиздаче хранит структуры сложные

Alexander
06.07.2018
16:25:07
Еще вопрос, после go test cover вижу coverage: 63.3% of statements

Google
Alexander
06.07.2018
16:25:37
есть какие-то утилиты или может параметры, которые подскажут что именно не покрыто?

То есть какие кейсы я забыл, не учел при тестах....

Mush
06.07.2018
16:26:46
какая разница, viper все умеет, идеально из env подсасывать
вайпер не все умеет. если сложная структура, то надо обращаться по полному имени ключа. например database.host. только в этом случае будет использована переменная DATABASE_HOST. если же на свое несчастье код работает со структурой вайпера, которая не находится в корне конфига, а например внутри узла database, то вызов GetString(“host”) проверит переменнную HOST, а не DATABASE_HOST. те чтобы юзать енвы, надо еще понимать, что всегда работаем с корнем конфига, что отсекает часть функционала вайпера

Alexander
06.07.2018
16:27:34
https://blog.golang.org/cover
спасибо тебе, мил человек

Vladislav
06.07.2018
16:28:01
спасибо тебе, мил человек
А вообще большинство редакторов умеет.

Alexander
06.07.2018
16:28:20
Ну чет GoLand не могет, или я его еще не научился готовить

Vladislav
06.07.2018
16:28:58
Ну чет GoLand не могет, или я его еще не научился готовить
Умеет. Сходу не припомню как включить.

Alexander
06.07.2018
16:29:14
Нашел вот такое



Видимо надо поизучать поглубже, спасибо

GoodMoodDealler
06.07.2018
17:44:20
var i int var results []string for data := range in { fmt.Println(i) results[i] = data.(string) i++ }

Печатает 0 и выдает index out of range

Вопрос, в чем я ошибся?

Владимир
06.07.2018
17:46:24
А зачем вы индекс самостоятельно увеличиваете, если можно for i, data := range in?

GoodMoodDealler
06.07.2018
17:47:05
too many variables in range

Если сделать как вы сказали

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