@proGO

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

Andrew
19.06.2018
12:19:49
В конфиге просто максимально скрытное "type": "go", "request": "launch",
для начала исходники плагина посмотреть, может там можно просто в конфиге исправить

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
Александр
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?

Vadim
19.06.2018
16:13:46
ну и runGC вроде

сначала первый запускаешь, потом второй

Есть опытные пользователи badger?
с баджером сам трахаюсь - тоже дофига лог весит

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
там есть purgeOldVersions
этот метод удалили, якобы теперь оно само там как-то теперь чистится

но этого ни разу не происходит

а как у bbolt с этим?

попробовал buntdb

какой же он шустрый, мне нравится

один минус, хранит только строки походу

если я буду хранить там string(слайс байтов)

какие подводные камни?

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
что если сразу COUNT брать?
это слишком просто

Google
Vadim
20.06.2018
11:13:54
https://github.com/albrow/fo
Да, прикольная вещь

Да, прикольная вещь
Теперь не могут пристать по поводу дженериков.

Vladislav
20.06.2018
11:14:19
это слишком просто
"а вдруг поднадобится?" (c) :)

Admin
ERROR: S client not available

Igor
20.06.2018
11:14:36
что если сразу COUNT брать?
Count медленно, надо что-то типа select true if exists...

Vladislav
20.06.2018
11:15:13
Count медленно, надо что-то типа select true if exists...
с чего оно будет медленно с LIMIT 1, например?

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
Проверил на вскидку на локальной базе, чуть разные планы запросов создает.

Yaroslav
20.06.2018
11:21:54
Хотя нет

Оно все какое-то значение возвращает и указатель туда нужно прокидывать явно

Igor
20.06.2018
11:23:18
тогда бы select * limit 1 было бы ацки долго. везде. никто бы его не юзал а просто брали первый результат
Ну запрос select * и select count(*) - разные вещи. Второй подразумевает агрегацию.



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
https://github.com/albrow/fo
Типы суммы не завезли, можно закапывать

Google
Никита
20.06.2018
17:57:45
Есть такой результат pprof

Кто нибудь может обьяснить, как это вообще читать?)

Исходя из него я не могу понять что сколько времени занимает

undiabler
20.06.2018
18:05:29
Вопросов два: сильно ли увеличится скорость работы, учитывая, что подобные запросы будут выполняться в большом количестве, и как это сделать, если это критично
Мне кажется это преждевременная оптимизация. Даже если там будет десятки тысяч запросов в секунду, с большей долей вероятности упретесь сначала в сокеты/базу и т.д. чем в выделение памяти под 1 переменную.

ну а если действительно будет серьезная нагрузка то есть много механизмов облегчения жизни для базы типа 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
а биллинг будет еще откуда-то дергатся? Сколько копий может быть поднято? Сильно ли различается контекст? Вопрос отличный и сам бы хотел услышать вразумительный ответ на что то подобное.
есть SPA приложение (VueJS) - это единственный клиент через который происходит все взаимодействие пользователя с бэкэдом посредством HTTP API запросов. Других клиентов нет. > а биллинг будет еще откуда-то дергатся? Какие то действия в биллинге могут тригерриться не с клиента, а с других микросервисов, например с микросервиса отвечающего за обмен с 1С. > Сколько копий может быть поднято? 1 > Сильно ли различается контекст? Вот тут не понял о каком контексте речь

Страница 1524 из 1674