@proGO

Страница 635 из 1674
Стас Щетинников
22.05.2017
08:16:11
--- что-то среди моих коллег и знакомых, никто не слышал про ddd (domain driven design). ммм ... - не знаю по какой причине так мало людей знают про это, либо они просто пишут очень простые программы, поэтому им это не нужно.
Эээ, а зачем использовать DDD при написании кода на go? Очевидно же, что на go писать сложную бизнес логику мягко говоря не очень удобно, не для того язык предназначался.

Константин
22.05.2017
08:18:08
Привет всем! У меня дурацкий вопрос, т.к. в языке совсем новичек. Мне необходимо написать сервис для хранения большого количества json строк. Такая коллекция, куда можно пушить построчно данные, а потом всей толпой забрать

Сделал юникс сокетами, все данные отлично прилетают и ответы уходят. Вопрос, как хранить эти данные?

Ведь если я правильно понимаю, слайсы тут уже не канают

Google
Alexei
22.05.2017
08:19:39
если формат json'а один, то в структурах можно хранить

опять же, смотря сколько хранить, может удобнее в БД писать

Константин
22.05.2017
08:20:30
нужна высокая скорость приема и очистка сразу при отдаче

Alexei
22.05.2017
08:21:32
in memory БД, типа aerospike можно использовать

Константин
22.05.2017
08:21:59
на эликсире все круто написалось, там есть спецовые структуры данных очень быстрые и тэйлколл оптимизированный. Вот хочу сравнить производительность языков в этой задаче

Alexei
22.05.2017
08:21:59
но у него есть проблемы при хранении на дисках, не все бины удаляются в open-source версии

Константин
22.05.2017
08:23:30
что если простым append делать?

Я так понимаю, что постоянно будет создаваться новый массив и срез из него?

Alexei
22.05.2017
08:24:27
у меня нечто похожее сейчас написано, но там надо хранить данные всегда и раз в минуту они обновляются, количество данных среднее (гео-данные о всех поездах и наземном транспорте города), я map использую с ключом struct и и значениями struct, так же. работает быстро. все держится в памяти

Константин
22.05.2017
08:25:44
Т.е. мапы всегда в памяти и у них нет ограничений?

Попробую мапом сделать

Alexei
22.05.2017
08:27:02
они памятью ограничены, но там не сложные структуры, поэтому одно показание кушает "мало" места, а ключ тем более, два int

Константин
22.05.2017
08:35:40
хмм.. вот тут я лопухнулся

Google
Константин
22.05.2017
08:35:49
а ключ то в мапе надо самому задавать)

автоинкремент не предусмотрен?

22.05.2017
08:36:25
Andrey
22.05.2017
08:38:43
парень просто решил побуферизовать логи перед кибаной/лог стешем

Константин
22.05.2017
08:39:08
перед кликхаусом

Andrey
22.05.2017
08:39:23
ну как бы это костыль)

Alexei
22.05.2017
08:39:44
у логов же есть дата/время, если в UnixNano, то это и может быть идентификатором, в тоерии

Andrey
22.05.2017
08:39:53
если хочешь сделать по уму - делай евент-бейзд, без выкрутасов, кафка ест с рук все что даешь

если логи собираются с разных источников - нет)

Alexei
22.05.2017
08:40:36
с разных - нет, согласен, но источник/дата-время может быть ключем, в таком случае

Константин
22.05.2017
08:40:59
в сек до 1к таких записей

Alexei
22.05.2017
08:41:07
у меня так сегмент/идентификатор трака

Константин
22.05.2017
08:41:14
одинаковые ключи получаются

Alexei
22.05.2017
08:42:26
ну тогда слайс использовать, идентификатор тебе не нужен же, по идеи, раз ты все данные разгружаешь

Andrey
22.05.2017
08:42:43
мы с кликов в глиспе делали хеши и клали рядом

Константин
22.05.2017
08:43:13
на сайт заходит человек и смотрит большое количество баннеров , надо собирать метрику по каждому баннеру. Т.е. с 1 человека от 15 до 30 записей

в среднем онлайн 150-200 человек, генерируют около 50 открытий страницы в сек. вот и получается 50*20 = 1000 в сек

спасибо) более-менее разобрался в вопросе, скорее всего остановлюсь на эликсире

Andrey
22.05.2017
08:46:55
решать тебе, конечно, но есть нефиговый SPoF

Google
Andrey
22.05.2017
08:47:10
это твой апп в этом случае, который в пике может уйти поспать

я бы развязал пост и агрегацию, так проще будет скейлить

Sander
22.05.2017
08:52:53
@schetinnikov пишут у нас ребята на php. не знаю мне посоветовали ребята из другой группы использовать ddd.

Andrey
22.05.2017
08:53:15
гони их тряпками

пэхэпешников этих!

Sander
22.05.2017
08:54:02
мм, тогда как лучше всего проектировать проекты на go

про ddd, мне именно гошники посоветовали

Andrey
22.05.2017
08:54:30
лучше всего методом северозападного угла

RunOver
22.05.2017
08:57:20
Смотрю на зверька Go, и не могу понять, то ли это собака, то ли это сулик.

Phil
22.05.2017
08:57:59
суслик

это деформация зайчика Plan9

RunOver
22.05.2017
08:59:06
Знакомая гошница вообще думала все годы, что это Медведь.

kolas
22.05.2017
08:59:50
у них же на сайте написано gopher

Константин
22.05.2017
09:05:26
пэхэпешников этих!
Для каждой задачи свой инструмент)))

В своей стихии он очень даже крут

Кстати, а go поддерживает hot code reload??

Andrey
22.05.2017
09:08:37
Константин
22.05.2017
09:09:21
чтоб не останавливать приложение

Andrey
22.05.2017
09:10:10
чтоб не останавливать приложение
Как ты себе это представляешь? Что с памятью делать будешь?

22.05.2017
09:11:59
Кстати, а go поддерживает hot code reload??
просто посмотри на github-e

Google
Константин
22.05.2017
09:15:37
Да фиг его знает. Вот работает у тебя веб приложение, люди заказы делают, црм крутится, создание заявки занимает пол секунды и добавляет кучу данных в разные базы. Но не хайлоад, смысла нет брать больше одного сервера и поднимать что-то кроме go и mysql

И чтобы обновить приложение - надо всех предупредить об отключении, перезапуститься и заново всех запустить

Vladimir
22.05.2017
09:16:34
Кажется тебе просто нужен graceful shutdown

Константин
22.05.2017
09:18:26
Т.е. один фиг остановка) Это я про плюсы пхп сейчас

Vladyslav
22.05.2017
09:19:23
то есть ты на продакшне хочешь код править, как в старых добрых традициях пхп?

Через фтп еще скажи

Константин
22.05.2017
09:20:31
не обязательно

но это тоже плюс

Admin
ERROR: S client not available

Ilnar
22.05.2017
09:20:38
Т.е. один фиг остановка) Это я про плюсы пхп сейчас
в смысле остановка? новые запросы идут на новый код, старые дорабатывают и закрываются

Vladyslav
22.05.2017
09:21:30
или рядом поднял новый код, на другой порт повесил, перенапавил все новые запросы туда, а старый потушил

Константин
22.05.2017
09:21:43
Блин)) ну компилируемый код и скриптовый.. разные темы)) говорить, что php плохой нет смысла, т.к. он просто другой

Andrey
22.05.2017
09:31:29
там, где пхп хорош, го закрывает его задачи лучше)

просто иметь сингл-тред в 2017 эт как-то даже забавно

Sander
22.05.2017
09:32:30
мне нравиться больше go чем php

особенно писать веб больше нравиться

Константин
22.05.2017
09:32:55
Andrey
22.05.2017
09:33:05
питон с его gil тоже поделие

Sander
22.05.2017
09:33:13
но пока что не очень понимаю, как мне лучше реализовывать свою программу на го

Константин
22.05.2017
09:33:16
В плане что что-то просто может нравиться больше)

Google
Sander
22.05.2017
09:33:17
напистаь код я могу конечно

Andrey
22.05.2017
09:33:24
метод северозападного угла !

m
22.05.2017
09:41:14
А кто-то использует runtime.LockOSThread() ? Если да, то для чего?

Константин
22.05.2017
09:48:23
https://www.youtube.com/watch?v=rn6D_YFMpow&app=desktop

Может кому интересно будет

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

m
22.05.2017
09:56:37
Либы для GUI юзают
И что оно им даёт?

Igor
22.05.2017
09:58:52
И чтобы обновить приложение - надо всех предупредить об отключении, перезапуститься и заново всех запустить
Поднимаешь два инстанса приложения, перед ними балансировщик с active health check (haproxy или nginx). В приложении надо предусмотреть graceful shutdown (свежии версии go поддерживают)

Denis
22.05.2017
10:12:27
Ничего не даёт

Сишные либы для работы с опенгл

И прочими

Требуют чтобы вызов был совершен с одного треда

Либо либы которые юзают tls

Либо каким-то раком используют идентификатор треда для своих нужд

Dmitry
22.05.2017
15:25:13
привет! а есть io.MultiWriter но только со статистикой? :)

Che
22.05.2017
16:17:12
люди добрые, go get может забрать с гитхаба тестовый бранч?

Denis
22.05.2017
16:23:30
Нет

Che
22.05.2017
16:27:49
а как вы это делаете тогда?

Denis
22.05.2017
16:28:30
Пакетные менеджеры

Alexey
22.05.2017
16:28:31
в директории проекта в /src : git checkout test, и потом godep save ещё для надёжности

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