
folex
19.06.2018
12:18:17
В конфиге просто максимально скрытное
"type": "go",
"request": "launch",

Andrew
19.06.2018
12:19:49

Daniel
19.06.2018
12:51:11
Зачем это все? Сэкономить по директории на задачу?

Александр
19.06.2018
13:52:41
@onokonem а как вы оборачиваете весь мусор из main(){} если не секрет? ?

Google

Александр
19.06.2018
13:52:48
ну там всякие инициализации базы данных и прочее
я вот думаю сделаю пакет shared/application и туда все запихнуть

The
19.06.2018
13:53:47

Александр
19.06.2018
13:53:59
две бд, хедлеры...
пока все проиницилизируется 150 строк пройдет ?

The
19.06.2018
13:54:24
я делаю пакет service/database и оттуда экспортирую методы, возвращающие ссылку.

Александр
19.06.2018
13:55:03
у меня есть пакет db я туда обернул уже непосредственно вызовы из драйвера
но все равно в main это все не оч красиво как то
один лог хреначит аля:
switch strings.ToLower(viper.GetString("logging.level")) {
case "panic":
log.SetLevel(log.PanicLevel)
case "fatal":
log.SetLevel(log.FatalLevel)
case "error":
log.SetLevel(log.ErrorLevel)
case "warn":
log.SetLevel(log.WarnLevel)
case "info":
log.SetLevel(log.InfoLevel)
case "debug":
log.SetLevel(log.DebugLevel)
}
switch strings.ToLower(viper.GetString("logging.format")) {
case "text":
log.SetFormatter(&log.TextFormatter{})
case "json":
log.SetFormatter(&log.JSONFormatter{})
}
потом дб умеер работать с двумя протоколами - опять свитч
ну и понеслась
а бинарников то несколько
ну конечно тупые обертки то я догадался, интересует как интепрайзно все решается ?

Google

Zver
19.06.2018
14:04:42

Александр
19.06.2018
14:05:41
это то понятно

Катерина
19.06.2018
15:06:14
Привет, есть кто-нибудь кто работал с блокчейном и знает как писать смарт-контракты?

Nikita
19.06.2018
15:06:59
я

Vadim
19.06.2018
15:08:18
Главное - в продакшн должен выходить контракт без багов.

Alexander
19.06.2018
15:37:58
Привет всем!
А в Badger есть что-то вроде автовакума? Как в постгресе. Ибо залил 1млн записей, удалили, данные весят после удаления пару гигов. Разве это норм?
Есть опытные пользователи badger?

Aleksei ?
19.06.2018
16:07:42

Vadim
19.06.2018
16:13:46
ну и runGC вроде
сначала первый запускаешь, потом второй

Roman
19.06.2018
16:44:18
Comparing Languages for Engineering Server Software: Erlang, Go, and Scala with Akka http://www.dcs.gla.ac.uk/~trinder/papers/sac-18.pdf

Alexander
19.06.2018
17:17:35
Спасибо за ответы, гляну
А ещё есть альтернативы? Задача - хранить очередь сообщений

Bogdan (SirEdvin)
20.06.2018
04:18:44
Rabbitmq, nmq?

DMITRY
20.06.2018
07:51:36
Подскажите запустил мини демон на go котоырй отарабатывает по websocet,смотрю потихоньку увеличивается память которую он занимает
сat /proc/7642/status |grep -i VMSIZE
> VmSize: 206136 kB
Когда вообще сборщик мусора должен начать разбираться с этим?

undiabler
20.06.2018
08:04:09
Сборщик мусора работает постоянно. Если растет память значит нужно конкретно смотреть код или профайлить. Утечки памяти из go никуда не делись

Google

Alexander
20.06.2018
08:16:35
но этого ни разу не происходит
а как у bbolt с этим?
попробовал buntdb
какой же он шустрый, мне нравится
один минус, хранит только строки походу
если я буду хранить там string(слайс байтов)
какие подводные камни?

Aleksei ?
20.06.2018
09:42:46

DMITRY
20.06.2018
09:44:07
просто есть такие параметры:
VmPeak: 266272 kB
VmSize: 235484 kB
VmLck: 0 kB
VmPin: 0 kB
VmHWM: 33100 kB
VmRSS: 33100 kB
на какую нужно ориентироваться?

Vasily Romanov
20.06.2018
09:59:29

DMITRY
20.06.2018
10:00:04
Спасибо!

Roman
20.06.2018
10:19:28
https://github.com/albrow/fo

Yaroslav
20.06.2018
11:02:51
Подскажите, есть ли способ проще/красивее проверить наличие записи с конкретным id в sql таблице, чем вот это:
err := db.QueryRow(q, sql.Named("id", id)).Scan(&r)
Где
q = "SELECT 1 FROM table WHERE id = $id"
Переменная r по сути не используется, есть способ от нее избавиться?

Vladislav
20.06.2018
11:13:03
что если сразу COUNT брать?

Roman
20.06.2018
11:13:51

Google

Vadim
20.06.2018
11:13:54

Vladislav
20.06.2018
11:14:19

Admin
ERROR: S client not available

Igor
20.06.2018
11:14:36

Vladislav
20.06.2018
11:15:13

Igor
20.06.2018
11:19:36
с чего оно будет медленно с LIMIT 1, например?
Лимит разве не накладывается на этапе фильтрации резалт-сета, по моему тут не актуально?
Сама операция получить количество по дефолту более сложная чем проверить на 1 вхождение - соответственно может быть оптимизирована сильнее.
https://stackoverflow.com/questions/7471625/fastest-check-if-row-exists-in-postgresql

Yaroslav
20.06.2018
11:19:55
О, точно

Igor
20.06.2018
11:19:57
Проверил на вскидку на локальной базе, чуть разные планы запросов создает.

Vladislav
20.06.2018
11:21:41

Yaroslav
20.06.2018
11:21:54
Хотя нет
Оно все какое-то значение возвращает и указатель туда нужно прокидывать явно

Igor
20.06.2018
11:23:18

Yaroslav
20.06.2018
11:23:49
А его результат сам по себе неинтересен, ибо достаточно проверки на sql.ErrNorows
Получаем лишнюю переменную, от которой хочется избавиться

Vladislav
20.06.2018
11:27:40
ну, для 1 результата агрегация бесплатна. разница больше может быть в выделении ресурсов/передаче * вместо числа count

Yaroslav
20.06.2018
11:27:52
Вопросов два: сильно ли увеличится скорость работы, учитывая, что подобные запросы будут выполняться в большом количестве, и как это сделать, если это критично

Alexander
20.06.2018
17:47:05

Google

Никита
20.06.2018
17:57:45
Есть такой результат pprof
Кто нибудь может обьяснить, как это вообще читать?)
Исходя из него я не могу понять что сколько времени занимает

undiabler
20.06.2018
18:05:29
ну а если действительно будет серьезная нагрузка то есть много механизмов облегчения жизни для базы типа lru кеша в памяти и т.д.
вопрос о каком порядке идет речь? десятки тысяч запросов, миллионы? с какой периодичностью?


Ilia
20.06.2018
20:17:50
Нужен совет. Назрел у меня архитектурный вопрос:
Решил я биллинг в отдельный микросервис вынести. Но не знаю что делать c http API частью.
вариант 1) http API остается в микросервисе отвечающем за общение с клиентом(браузером), а он в свою очередь дергает биллинг.
вариант 2) http API относящийся к биллингу тоже выносим в этот микросервис и дергаем его напрямую из браузера.
Хотелось бы услышать best practices по такому разделению. Спасибо

Pawel
20.06.2018
20:21:28
а биллинг будет еще откуда-то дергатся? Сколько копий может быть поднято? Сильно ли различается контекст? Вопрос отличный и сам бы хотел услышать вразумительный ответ на что то подобное.

Александр
20.06.2018
20:22:03
я вот не совсем понял постановку
можете прямо пример дать?
/me острожен в телепатии, лучше спросить

Ilia
20.06.2018
20:31:52

Pawel
20.06.2018
20:32:20