@gogolang

Страница 1540 из 1630
Alexei
12.10.2018
05:33:25
вот .ю.

но жто нужно перезапустить приложение

верно же

Vadim
12.10.2018
05:34:07
верно же
Используй юникс тайм

Google
Alexei
12.10.2018
05:36:41
немного не понял..

Zver
12.10.2018
05:38:35
но жто нужно перезапустить приложение
Зачем перезапускать. Этот ватч закрываешь и инициализируешь новый. Просто попутно, по тому же тикеру проверяешь не сменилась ли дата.

Alexei
12.10.2018
05:38:52
а все примерно понял куда рыть

спасибо!

Евгений
12.10.2018
05:53:19
ну вот, значит таки [] не возвращает копию
Вы как-то заморочились. a - слайс а[0] - первый элемент его Этот элемент можно скопировать с := а[0], тогда конечно изменение копии не будет менять оригинал. Либо взять адрес &а[0] и тогда можно менять элемент

Нави
12.10.2018
06:02:18
вчера так и не определился что использовать, какой синтаксис удобней и быстрее юзается, GORM или XORM для баз данных?

Vladimir
12.10.2018
06:14:55
Парни, я снова с redigo. https://play.golang.org/p/gDl37LrZwkU

Первоначально сохраняю структуру через HMSET. В последующем мне нужно изменить несколько полей в уже существующем хеше редиса

приходится делать через map[string]<Type> и также записывать через HMSET

все работает, но как всегда, есть Но

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

Field2 int redis:"field2"

что в таком случае делать? если я буду сохранять структуру целиком, он каждый раз будет записывать все поля, даже те, которые не изменились

Google
Vladimir
12.10.2018
06:19:52
field2 := map[string]int{"field2": 10} conn.Do("HMSET", redis.Args{}.Add(key).AddFlat(field2)...)

Pavel
12.10.2018
06:20:36
Сложно чет

А почему все поля нельзя записать?

Vladimir
12.10.2018
06:21:11
потому что их сначала нужно из редиса вытащить

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

Pavel
12.10.2018
06:23:16
А новое значение поля от старых значений не зависит?

Vladimir
12.10.2018
06:23:41
нет

к примеру, я обновляю прогресс от 0 до 100

Pavel
12.10.2018
06:28:20
Ну если тебе хак с кастомной командой не нравится, то вынеси это поле в отдельный ключ.

Евгений
12.10.2018
07:10:27
Сделай мапу нужных изменений changes := map[string]interface{} и измени только эти поля. Например: - меняешь в стуктуре какое-то поле - сразу помечаешь в мапе changes[fieldName] = fieldValue - затем записываешь в редис for k, v := range changes { /// здесь собираешь команду в редис }

Mykyta
12.10.2018
07:13:33
Евгений
12.10.2018
07:14:58
возьми их через рефлексию

Vladimir
12.10.2018
07:15:38
по мне так это лишний оверхед, проще в IDE рефакторить

Artem
12.10.2018
07:16:49
В смысле пора? В 99% случаев только интовые и надо использовать.
Хочу ссылку на бест практис где написано это. Мб я чего-то не знаю

Евгений
12.10.2018
07:18:12
Можно даже сделать вот такую гомопидарасию - интерпретируемый язык из Го :))) Делаешь структуру, ей делаешь setter SetField(name string, value interface{}) (sic! :) ), через него меняешь значения этой структруы и записываешь в мапу, что изменил. Затем метод FlushChanges() все это заливает в редис.

Google
Mykyta
12.10.2018
07:21:22
Хочу ссылку на бест практис где написано это. Мб я чего-то не знаю
Проблема в том, что в большинстве баз данных, рандомный uuid наносит непоправимый вред btree индексу и вставки начинают тормозить из-за фрагментации этого индекса. В качестве решения используют инкрементальный uuid на основе timestamp. uuid нужен, когда эти айдишники надо генерировать на стороне приложения, а не бд: если система распределенная и нет транзакций, например. Если у тебя обычное приложение с одной бд и транзакциями, тебе никакой uuid не нужен. И хранить его тож очень жирно выходит, ведь uuid занимает 16 байт.

Никита
12.10.2018
07:24:03
Если мне нужно создать запись в бд и вернуть пользователю айди созданной записи сразу, оправдано ли использование uuid?

Nick
12.10.2018
07:24:25
Хочу ссылку на бест практис где написано это. Мб я чего-то не знаю
А какие надо использовать ? Лонговые? Или uuid?)

Евгений
12.10.2018
07:25:30
Как только хранение распределилось на 2 базы - так все - хана сиквенсу (

Nick
12.10.2018
07:25:44
Не вижу прост проблем в использовании ин-тов и в распределённых системах

Mykyta
12.10.2018
07:25:53
еще я забыл про кейс, когда базу надо шардить

Nick
12.10.2018
07:26:11
Artem
12.10.2018
07:26:23
Откуда ?
от папы карло

Евгений
12.10.2018
07:26:34
Есть у тебя 2 равнозначных ноды. Как сделать недублирующиеся id?

Никита
12.10.2018
07:26:38
INSERT INTO TABLE VALUES ($1, $2) RETURNING id
Не все базы так могут

Nick
12.10.2018
07:26:43
Ты можешь сделать пул аидишников свой для каждой ноды

Евгений
12.10.2018
07:27:00
Не все базы так могут
Я вон там чуть выше написал - "используй нормальную базу"

Alexander
12.10.2018
07:27:04
можно банально использовать сервисы, у которых есть распределнные примитивы.

Mykyta
12.10.2018
07:27:06
Дублирование?
Последовательный uuid (v1) создается на основе мак-адреса (по факту ему можно что угодно подсовывать, ведь обычно мак адрес не имеет никакого смысла)

Google
Alexander
12.10.2018
07:27:33
тот же zookeper

Никита
12.10.2018
07:27:49
Я вон там чуть выше написал - "используй нормальную базу"
Что для вас нормальная, для других вполне вероятно что нет

Евгений
12.10.2018
07:27:49
Alexander
12.10.2018
07:27:57
лол. простите

Mykyta
12.10.2018
07:28:17
Не все базы так могут
Какие не могут? Если использовать mysql вместо базы данных, даже оно умеет в last_inserted_id

Nick
12.10.2018
07:28:17
Условно первая нода оперирует аиди от 1-10 вторая от 10-20 и хранить эти диапазоны в той же Базе, ну будет в тебя разреженность зато работает)

Евгений
12.10.2018
07:28:23
Это понятно.

А если она на самом деле распределенная? Например, административно, а не только технически?

Nick
12.10.2018
07:29:22
И ? Какая разница что в базу то писать)

Nick
12.10.2018
07:29:48
maxInt/2 норм я думаю
Всегда можно юзать long

Или типы типа bigint

Не суть

Artem
12.10.2018
07:30:28
Всегда можно юзать long
а можно не юзать, а юзать когда пригодится, миграцию сделаешь и дальше будешь жить.

а можно не юзать, а юзать когда пригодится, миграцию сделаешь и дальше будешь жить.
начну пожалуй с byte, и запилю автомиграции при оверфлоу ключа

Nick
12.10.2018
07:31:45
Alexander
12.10.2018
07:57:00
> У программистов вообще какое-то странное отношение к тому, что для того чтоб работу работать надо ЧТО_ТО ЗНАТЬ И УМЕТЬ. Даже намек на то, что надо что-то знать может привести к тому, что программист начал кукситься, а предложивший такой ужас получил репутацию токсичного человека

в дополнение ко вчерашнему разговору

Pavel
12.10.2018
07:57:54
Этот вброс надо обсудить? ?

Misha
12.10.2018
08:01:29
Всем доброго времени суток! Посоветуйте, что почитать о микросервисах и как правильно выстраивать эту архитектуру в го? Есть ли какие-то хорошие материалы про это?

Google
Vladimir
12.10.2018
08:02:07
помоему даже книга была про микросервисы в го

Misha
12.10.2018
08:04:37
Они есть, вот какая лучше будет)

Артур
12.10.2018
08:04:57
Та, которая у тебя есть

Vladimir
12.10.2018
08:05:49
Та, которую можно скачать

Darwin
12.10.2018
08:06:01
Та, которая актуальная на 2018 год

Vladimir
12.10.2018
08:08:30
Вообщем, ты понял, что здесь тебе ничего не посоветуют конкретного :D

Vyacheslav
12.10.2018
08:08:35
Та, в которой информация дается полно и доступно

Artem
12.10.2018
08:10:14
Понял хех
начни с building microservices (Sam Newman)

Misha
12.10.2018
08:10:57
О, слышал уже такое где-то, спасибо!)

lexxx
12.10.2018
08:16:45
(как я ненавижу c++, вы бы знали)
я отдал с++ 6 лет (12-18), поаккуратнее с языком молодой человек

)))))))))))

Misha
12.10.2018
08:18:08
Благодарю

Владимир
12.10.2018
08:18:53
годно

r
12.10.2018
08:19:21
я отдал с++ 6 лет (12-18), поаккуратнее с языком молодой человек
Вы были так юны... Хороший был воспитатель

Alexander
12.10.2018
08:19:53
я отдал с++ 6 лет (12-18), поаккуратнее с языком молодой человек
поаккуратнее с растратами своего времени

lexxx
12.10.2018
08:20:40
поаккуратнее с растратами своего времени
ну я сейчас пишу в основном на node.js + typescript и в равной степени на go есть ощущение что можно написать ПО для управления ракетами, которое используют в NASA за 2 недели

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