
Aleksandr
20.09.2017
14:39:43
(шутка)

praut
20.09.2017
15:58:56

Andrew
20.09.2017
15:59:44

Ivan
20.09.2017
16:03:57
Фигасе, чел очень похож на учителя по хастлу

Google

praut
20.09.2017
16:11:00

Ivan
20.09.2017
16:13:10
У вы там одной транзакцией ?

Andrew
20.09.2017
16:35:44

Ivan
20.09.2017
16:36:49
У нас была такая проблема да. Но мы её не решили
Чем дальше тем хуже при bulk write

Andrew
20.09.2017
16:38:21
Звучит грустно.

Ivan
20.09.2017
16:39:24
У нас разовая операция была, вытерпели

Alexander
21.09.2017
06:16:54
Есть рабочий API сервис. Написал еще один микросервис. Всё работает. Шеф говорит "не хочу два сервиса, хочу один". Как мне запустить мой микросервис из другого сервиса?

Daniel
21.09.2017
06:25:07
Не надо этого делать

Alexander
21.09.2017
06:25:31
догадываюсь.
а как сделать?

Oleg
21.09.2017
06:25:39
кхм, тут как по мне обычного лоад-балансера хватит который будет разделять запросы по локешенам.

Google

Michael
21.09.2017
06:27:58
и тут шеф говорит: не хочу балансировщика

Konstantin
21.09.2017
06:29:15
?

Alexander
21.09.2017
06:29:36
шеф однозадачный )))
однобитный )

Oleg
21.09.2017
06:29:52
ну, "запустить мой микросервис из другого микросервиса" по-сути и есть простое проксирование запросов. Я просто не понимаю зачем такое городить внутри самой программы.

Michael
21.09.2017
06:30:46
толстый шеф не любит худых микросервисов

Alexander
21.09.2017
06:30:59
чтобы делать sudo systemctl start myservice один раз, а не столько, сколько микросервисов

Oleg
21.09.2017
06:31:31
а 2 микросервиса написанны на GO ?

Alexander
21.09.2017
06:31:40
да

Oleg
21.09.2017
06:33:58
так оформи\отрефакторь как библиотеки свои микросервисы, подключи в основной пакет и всё. Переписывать всё равно прийдёться.

Igor
21.09.2017
06:36:22

Oleg
21.09.2017
06:38:19
Завернуть оба в доин докер)
тоже нормально, но тут попробуй обьяснить , зачем при развёртывании своего сервиса тебе нужен установленный докер.

Stanislav
21.09.2017
07:01:17
товарищи, (относительно) глупый вопрос появился, мб сталкивался кто - как прочитать данные с fd? Конкретно интересует работа с https://wiki2.dovecot.org/AuthDatabase/CheckPassword

Vasily Romanov
21.09.2017
07:04:48
но это если тебе просто надо им пользоваться внутри твоего монолита, а не выставлять это именно как микросервис наружу
если типа слушать несколько пртов и на них будут разные сервисы жить, то это плохая идея

Andrew
21.09.2017
07:30:33

Daniel
21.09.2017
07:36:37
Waitgroup не забыть

Valentin
21.09.2017
08:12:36
Можно сказать шефу, что для лучшей доступности лучше запускать несколько инстансов

Momano
21.09.2017
08:13:52
Ребят, вопрос. Нужно запретить завершение программы, пока выполняется рутина из другого пакета. Что почитать, какие варианты решения? Лучше всего, если напишете куда капнуть, что использовать. Без кода, хочу поучиться. Спасибо

Google

Никита
21.09.2017
08:14:28

Valentin
21.09.2017
08:14:49

in favor
21.09.2017
08:16:12
Можно заблочить ту рутину чтением из канала и select'ом

Alexander
21.09.2017
08:16:15
значит там и надо ждать
через каналы можно
никто же на запрещает передать канал в вызов функции из другого пакета

Maks
21.09.2017
08:37:25
Спасибо, попробовал и вариант с WaitGroup, и с каналами. Всё получилось, спасибо!

Momano
21.09.2017
09:58:46
Возник ещё один вопрос. Есть ли в го сравнение структур по значениям полей? Или только руками?

Mush
21.09.2017
09:59:34
в самом языке возможности нет

Димка
21.09.2017
10:00:17

Vasily Romanov
21.09.2017
10:00:21
В смысле нету?
Структура - это сравниваемый тип
В случае если её типы сравниваемые
https://golang.org/ref/spec#Comparison_operators
Если не сравниваемые - DeepEqual как подсказывают выше

Димка
21.09.2017
10:02:37
А если будет слайс в структуре, как тогда сравнение пройдёт?

Vasily Romanov
21.09.2017
10:03:47
нет, слайс только с nil сравнить можно через ==
если слайс - то тебе в DeepEqual

Google

Vasily Romanov
21.09.2017
10:04:57
потому что это не сравниваемый тип. и структура с после типа слайс тоже будет енсравниваемой

Димка
21.09.2017
10:07:04
Ага, прочитал по твоей ссылке

Mush
21.09.2017
10:07:29
мапа тоже не сравниваемый
2 самых распространненых типа не сравниваемые

Valentin
21.09.2017
10:09:53
Сравниваемый, только указатели, а не значения -)

Mush
21.09.2017
10:10:23
ну и нах это надо )

Andrew
21.09.2017
11:27:41
2 самых распространненых типа не сравниваемые
У авторов Go особый взляд на нужный функционал языка. Например, нет ещё нескольких часто используемых вещей. Пара штук из того, что я встретил:
- нет функции проверки наличия файлов
- нет функции копирования файлов

Никита
21.09.2017
11:29:20

Andrew
21.09.2017
11:30:06

Никита
21.09.2017
11:30:29
по-моему прочитать из файла сразу в новый это очень красиво )

Andrew
21.09.2017
11:30:44

Илья
21.09.2017
11:30:48

Andrew
21.09.2017
11:32:53

Никита
21.09.2017
11:34:53

Илья
21.09.2017
11:35:02

Andrew
21.09.2017
11:36:49

Илья
21.09.2017
11:37:54
просто я не понимаю, почему это должно быть частью стандартной библиотеки, если это реализуется в 3-5 строк? :)
то, что сделали copy/copybuffer/copyn - вот это круто :)

Dion
21.09.2017
11:39:29

in favor
21.09.2017
11:40:00
Сахар лишним не бывает :)

Google

Andrew
21.09.2017
11:40:21

Димка
21.09.2017
11:44:00
или os.Stat()

Andrew
21.09.2017
11:46:17

Димка
21.09.2017
11:47:19

Ivan
21.09.2017
11:48:16
Some other error - какая жесть. А как же perror иже с ним?

Димка
21.09.2017
11:48:59
это не так важно в вопросе проверки существования файла))

Andrew
21.09.2017
11:51:12
Если в стандартную либу добавить isFileExist, то
а) обратная совместимость не поломается
б) будет рад как минимум один прогер (я ?).
Минусов не вижу ))

Igor
21.09.2017
11:54:10
Я заранее извиняюсь за тупые вопросы. Скажите кто что использует для конфигурационных файлов?

Mush
21.09.2017
11:54:47
viper

Andrew
21.09.2017
11:55:12

Димка
21.09.2017
11:55:23

Igor
21.09.2017
11:57:38
@NXShock , @antelman спасибо

Andrew
21.09.2017
11:58:03

Димка
21.09.2017
11:58:45
http://man7.org/linux/man-pages/man2/open.2.html

Andrew
21.09.2017
11:59:39