
Aleksandr
16.01.2018
13:47:30

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

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
правда в этом случае в for, select'e можно добавить sync.mutex...
просто еще будет cakeStatusChanged и прочее хня... И обновление пирогов будут оочень часто приходить, из-за mutex мб будет просадка производительности. Тогда получается 1 mutex на каждый ID пирога...
или я усложняю)?

Nikolay
16.01.2018
14:04:40

Google

Ivan
16.01.2018
14:05:16

Nikolay
16.01.2018
14:06:33

Ivan
16.01.2018
14:06:54
при дебаге

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

Demuz
16.01.2018
14:07:55
На самом деле объектов нет внутри массива?

Nikolay
16.01.2018
14:09:07

Ivan
16.01.2018
14:09:32

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

Nikolay
16.01.2018
14:11:30

Ivan
16.01.2018
14:11:32

Nikolay
16.01.2018
14:11:36
а массив - нет
тогда вообще шикарно, у тебя есть множество состояний в iota. Все как по учебнику.

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

Demuz
16.01.2018
14:12:32

Google

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

Nikolay
16.01.2018
14:13:12

Ivan
16.01.2018
14:13:35
?

Demuz
16.01.2018
14:14:42

Nikolay
16.01.2018
14:15:45

Demuz
16.01.2018
14:16:20

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

Nikolay
16.01.2018
14:17:45

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

Alexander
16.01.2018
14:19:50

Nikolay
16.01.2018
14:19:50
и нет, не придет

Demuz
16.01.2018
14:21:40

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
всё не однозначно ?

Demuz
16.01.2018
14:25:33

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