@proGO

Страница 1152 из 1674
Aleksandr
16.01.2018
13:47:30
ORM не хочется юзать.
github.com/mattes/migrate я это юзал

Marlik
16.01.2018
13:47:49
спасибо.

Anton
16.01.2018
13:48:12
github.com/pressly/goose тоже можно

Ivan
16.01.2018
13:49:38
Добрый день еще раз. Имеется такой код: https://play.golang.org/p/_Q1Ssf5i8ds можно ли как то в строке 15, обобщить, что там будут "пирожениые"? Или как лучше имплементировать эту идею лучше будет?

Google
Alexander
16.01.2018
13:50:26
можно через интерфейс

type ICake interface { GakeID() int } и типы cake, cakeAdded, cakeRemoved соотв подвести

примерно так

var cakes []ICake

Ivan
16.01.2018
13:52:10
Но получается что для cakeAdded надо тоже будет интерфейс делать

т.е дублировать код

Alexander
16.01.2018
13:52:16
нет

Ivan
16.01.2018
13:52:24
Почему нет?

Alexander
16.01.2018
13:52:36
сделай через вложенность

type cakeAdded struct { cake }

Ivan
16.01.2018
13:52:58
хм, я тоже так думал, но тогда теряется удобно создание стуктуры в будущем...

хм. Но видимо это единственный вариант

Demuz
16.01.2018
13:53:36
ORM не хочется юзать.
Не, не могу, все таки я вас где-то видел, верней аватар. Вы откуда?

Google
Ivan
16.01.2018
13:53:44
Я думал нашёл золотую пулю, ввиде type cakeAdded = Cake, но фиг тут был. cake.(type) говорит что они все одного типа

Alexander
16.01.2018
13:53:45
просто не вижу смысла вообще в cakeAdded

тебе проще статус ввест внутри cake сделать

и вообще не мучится

Ivan
16.01.2018
13:54:21
идея такова, мне будет приходить по Chan разные варианты, добавился или удалился Cake c таким то ид

Alexander
16.01.2018
13:54:31
ну и

type cake struct { ID int Status int }

и там ворочи как хочешь

)))

все равно в памяти не сильно много будет различий

чем от твоей версии с разными типами

Ivan
16.01.2018
13:55:50
ну так у меня тоже есть. Но при cakeDelete я буду его вообще удалять, ибо он никогда больше использоваться не будет

Alexander
16.01.2018
13:56:22
в примере не видно

и логика будет лучше просматриваться

Ivan
16.01.2018
13:59:50
тебе проще два канала сделать и все
тоже думал о таком варианте, но боюсь что может тогда придти в неправильной последовательности cakeAdded и cakeRemoved

правда в этом случае в for, select'e можно добавить sync.mutex...

просто еще будет cakeStatusChanged и прочее хня... И обновление пирогов будут оочень часто приходить, из-за mutex мб будет просадка производительности. Тогда получается 1 mutex на каждый ID пирога...

или я усложняю)?

Google
Ivan
16.01.2018
14:05:16
в слове "пирожное" только одна буква "е". А по коду - зачем тебе типы, почему не itoa, например?
хм... тоже думал над этим вариантом, но почему то откинул, пойду вспомню почему

Nikolay
16.01.2018
14:06:33
хм... тоже думал над этим вариантом, но почему то откинул, пойду вспомню почему
и вообще, в общем случае, reflect надо избегать, как огня

Ivan
16.01.2018
14:06:54
и вообще, в общем случае, reflect надо избегать, как огня
знаю, в данном случае использую как "посмотреть что за тип пришёл" ?

при дебаге

Nikolay
16.01.2018
14:07:48
ну а в случае енума у тебя будут просто числа :)

Demuz
16.01.2018
14:07:55
и вообще, в общем случае, reflect надо избегать, как огня
Оффтоп. Скажите пожалуйста, технически элементы массива каких-либо объектов, это просто хранилище указателей на эти объекты, или как?

На самом деле объектов нет внутри массива?

Nikolay
16.01.2018
14:09:07
Оффтоп. Скажите пожалуйста, технически элементы массива каких-либо объектов, это просто хранилище указателей на эти объекты, или как?
технически это зависит от языка. В го, насколько я знаю, это реальный кусок памяти, где реально лежат эти объекты, но в силу того, что го - не си, с размещением в памяти и указателями чуть сложнее

Ivan
16.01.2018
14:09:32
в слове "пирожное" только одна буква "е". А по коду - зачем тебе типы, почему не itoa, например?
Вот как получилось... блин, впринципе подходит: https://play.golang.org/p/H3QXH9uTtgU

Nikolay
16.01.2018
14:10:42
Ivan
16.01.2018
14:10:55
да знаю я)

Nikolay
16.01.2018
14:10:59
а какие еще ивенты могут быть, кроме added/removed?

Demuz
16.01.2018
14:11:00
технически это зависит от языка. В го, насколько я знаю, это реальный кусок памяти, где реально лежат эти объекты, но в силу того, что го - не си, с размещением в памяти и указателями чуть сложнее
Просто как я понял из нескольких примеров, объекта как будто внутри массива нет. Массив как-будто просто хранилище ссылок на тот или иной объявленный инстанс.

Ivan
16.01.2018
14:11:32
Nikolay
16.01.2018
14:11:36
а массив - нет

StateChanged, Escaped, PositionChanged
по сути, ты делаешь стейт-машину? :)

тогда вообще шикарно, у тебя есть множество состояний в iota. Все как по учебнику.

Ivan
16.01.2018
14:12:27
ну.... почти. Приходит стейт Espaced, значит надо сначала отправить на готовку повару...

Demuz
16.01.2018
14:12:32
это слайс - хранилище ссылок
Блин, что то я запутался из-за питона. []Type - это слайс? А массив тогда это что?

Google
Ivan
16.01.2018
14:13:08
ладно, пойду готовить... блин... забавно что слово пирожение само подобралось для эксперементов.

Nikolay
16.01.2018
14:13:12
Блин, что то я запутался из-за питона. []Type - это слайс? А массив тогда это что?
у слайса и массива одинаковый синтаксис, просто в первом случае размер не указывается явно, и массив создается непрозрачно внутри

Ivan
16.01.2018
14:13:35
?

Demuz
16.01.2018
14:14:42
у слайса и массива одинаковый синтаксис, просто в первом случае размер не указывается явно, и массив создается непрозрачно внутри
И тогда технически именно массив это тот самый кусок памяти с объектами? А слайс с ссылками на объекты.

Nikolay
16.01.2018
14:15:45
И тогда технически именно массив это тот самый кусок памяти с объектами? А слайс с ссылками на объекты.
не совсем так. Слайс - это просто взгляд в кусок памяти изначального массива. Если ты делаешь массив и берешь от него слайс, то при изменении слайса меняется и сам массив.

Nikolay
16.01.2018
14:16:22
то есть, если очень грубо, слайс - это штука, которая содержит указатель на подлежащий массив и границы, откуда и докуда

Ivan
16.01.2018
14:16:30
что то я запутался, в чем разница массива и слайса в го? Разве массивы есть в гошке?

Nikolay
16.01.2018
14:17:06
То есть слайс, это слепок реальной памяти, так получается?
думай о нем, как об указателе на массив

Admin
ERROR: S client not available

Nikolay
16.01.2018
14:17:29
что то я запутался, в чем разница массива и слайса в го? Разве массивы есть в гошке?
есть. Массив - это штука с размером, известным на этапе анализа кода при компиляции.

Demuz
16.01.2018
14:17:36
то есть, если очень грубо, слайс - это штука, которая содержит указатель на подлежащий массив и границы, откуда и докуда
Ааа, понял. И получается ,если ты изменяешь что-то в границах этого предела, то изменяется и сам подлежащий массив.

Alexander
16.01.2018
14:18:01
или я усложняю)?
если вам приходят ID, то данные уже в бд и отправить в канад id на удаление досоздания - это пздц

Ivan
16.01.2018
14:18:57
это автомат, внезапно разные действия могут приходить.

Alexander
16.01.2018
14:19:27
Ivan
16.01.2018
14:19:35
и я имел ввиду, юзер нажал "создать" и потом удалить. И таких 100 штук почти одновременно. То боюсь не придёт ли с другим порядком

у меня нету БД

Demuz
16.01.2018
14:19:49
да, примерно так
Хорошо. Это понятно. Но я не находил никогда ситуаций, где мне мог бы пригодиться слайс от вышестоящего массива, мало опыта. А если создаётся просто пустой слайс, его размер как бы динамический получается? Например, при работе с орм часто используют указатели на слайс.

Google
Ivan
16.01.2018
14:22:33
А порядок почему важен там вообще?
Ну пришло удаление пироженого, ну его нету, ок игнорим. Пришло внезапно создание, и автомат будет бесконечно искать повара на его создание, хотя диспетчер уже отменил его создание... так получается

Nikolay
16.01.2018
14:22:44
у меня нету БД
Может, зря? :)

Ivan
16.01.2018
14:22:57
Я боюсь нарушится порядок, если слушать два разных канала

Может, зря? :)
зачем еще за собой таскать что то еще? Вещь же простая)

Alexander
16.01.2018
14:23:59
пока что-то происходит на серваке - жди ответа

Nikolay
16.01.2018
14:24:25
зачем еще за собой таскать что то еще? Вещь же простая)
Потому что всё периодически падает, хранить данные только в оперативке процесса - ну такое

Alexander
16.01.2018
14:24:26
вот и все

Ivan
16.01.2018
14:25:14
Потому что всё периодически падает, хранить данные только в оперативке процесса - ну такое
для восстановление, есть уже бд, из которой буду подгружать при первом запуске, далее, я слушаю редис, в который пишет php / nodejs о новом пироге

всё не однозначно ?

Ivan
16.01.2018
14:26:15
Ах да, еще текущая система Легаси проект....

Demuz
16.01.2018
14:27:43
Разве я не понятно описал возможную проблему?
Описали понятно. Я не понимаю почему автомат будет бесконечно искать повара то? ?

Alexander
16.01.2018
14:28:13
Ах да, еще текущая система Легаси проект....
хреновая связка клиента и сервера

Demuz
16.01.2018
14:28:53
Описали понятно. Я не понимаю почему автомат будет бесконечно искать повара то? ?
Если диспетчер отменил заказ, то зачем автомату его искать? Разве автомат не знает об отмене заказа?

У меня просто немного не так работает.у меня при отмене заказа, вся структура знает об этом.

Ivan
16.01.2018
14:36:36
Если диспетчер отменил заказ, то зачем автомату его искать? Разве автомат не знает об отмене заказа?
в той проблеме которую я описал, ситуация такая, что из-за того, что выполнилось сперва удаление и потом создание, т.к слушальщик на "создание" задумался на предыдущем заказе. в Этом плане

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