@oop_ru

Страница 453 из 785
Anton
16.01.2018
11:25:08
Долго же ты писал это шутку.

Bohdan
16.01.2018
11:25:43
В этом чате админов, как ментов в Беларуси. На каждых 100 человек 1 админ
зануда мод он не дотянули, 8 админов на почти косарь

Sergey
16.01.2018
11:25:49
А кто такой Антон?) Ни разу не видал его сообщений
ты можешь позвать его сказав "event sourcing" или "nservicebus говно"

Maksim
16.01.2018
11:27:08
nservicebus не говно))

Google
Борис
16.01.2018
11:27:12
Долго же ты писал это шутку.
Ты поставил бота, который следит за тем, сколько я пишу? Или реально смотрел в чат и ждал? )))

Aleh
16.01.2018
11:27:12
(не я)

мм, ладно, как минимум один из них

Bohdan
16.01.2018
11:28:04
а кто ещё может быть? хД

Anton
16.01.2018
11:30:08
Pavel
17.01.2018
13:30:47
Не осилиливаю много постов в этом чате. Видал долгие сплетения языков на тему статики. Может об этом уже была речь - дополню от себя из мира .net'а про статические методы. У нас есть возможность определять статический объект - семантика типа синглтона, соответственно и методы у него должны быть статикой. Так же есть сахар - методы расширения когда можно в статическом классе определять статические методы для других классов не модифицируя их. И еще мож есть разные варианты. Т.е. чисто для технической реализации некоторых фич.

Pavel
17.01.2018
13:33:11
зачем что?

Sergey
17.01.2018
13:33:13
хотя EventStore объектом сингелтоном норм по идее

зачем что?
1. зачем ты это написал, с какой целью 2. зачем нужны сингелтон объекты? для каких юзкейсов?

Maksim
17.01.2018
13:34:17
я вот с позиции разработчика, использующего язык, который нельзя называть, не могу понять за каким хреном нужен синглтон для стора)

Google
Pavel
17.01.2018
13:34:29
1) Как сказал - выше были вопросы у коллег. Походу годы прошли уже))

49576
17.01.2018
13:35:46
ахах эт че это нельзя называть на каком языке пишешь?

Sergey
17.01.2018
13:35:53
Pavel
17.01.2018
13:35:59
2. Зачем нужны? Кому то нужны. Вот в дотнетн есть класс Math там дофига методов для выполнения мат вычислений.

Sergey
17.01.2018
13:36:33
2. Зачем нужны? Кому то нужны. Вот в дотнетн есть класс Math там дофига методов для выполнения мат вычислений.
потому что в былые времена небыло возможности сделать пакет с функциями просто?

49576
17.01.2018
13:36:38
имя господне долгое время тоже нельзя было называть у евреев

Pavel
17.01.2018
13:37:11
Не историю почему так сделали я не знаю

49576
17.01.2018
13:37:18
та конечно нету. тот проект давно сдулся

Aleh
17.01.2018
13:37:29
я вот с позиции разработчика, использующего язык, который нельзя называть, не могу понять за каким хреном нужен синглтон для стора)
ну как один из вариантов, чтобы во всех агрегат рутах не делать методы для добавления ивента в коллекцию и для доставания записанных ивентов

Maksim
17.01.2018
13:38:32
ну как один из вариантов, чтобы во всех агрегат рутах не делать методы для добавления ивента в коллекцию и для доставания записанных ивентов
так а чем агрегат, как владелец несохранённых событий плох? зачем хранение событий, которые ещё не сохранены, делегировать стору?

Aleh
17.01.2018
13:39:10
поэтому и удобно)

Roman
17.01.2018
13:39:43
И его как синглтон зарегать

Aleh
17.01.2018
13:39:55
т.е. это сразу тебе и наследоваться не надо, и unit of work халявный

удобненько

Google
Maksim
17.01.2018
13:40:59
так и н поняыл в чём удобство. Ладно, мб наткнусь как-нить на такую реализацию, посмотрю

Aleh
17.01.2018
13:41:18
я покажу в чем удобство)

Артур Евгеньевич
17.01.2018
13:42:05
бога нет
а пых не язык программировния?

Sergey
17.01.2018
13:42:33
а пых не язык программировния?
ну всяко лучше баша (хотя и тут найдутся несогласные)

Aleh
17.01.2018
13:43:29
ну всяко лучше баша (хотя и тут найдутся несогласные)
ну башем реплом я пользуюсь относительно активно, а вот пхпшным нет)

Maksim
17.01.2018
13:44:11
есть какой-то абстрактный агрегат, у которого есть метод applyEvent в нём же хранится список применённых, но не сохранённых эвентов. И есть внезапно метод для получения этого списка. Когда выполняется сохранение, список получается и на его основе сохраняется стрим. Усё как бы.

Maksim
17.01.2018
13:46:03
вопрос нипанимать. Явно с подвохом. конечные агрегаты очевидно не наследую. Они вполне себе самодостаточные

Aleh
17.01.2018
13:46:19
и метод получения списка, и метод добавления для данного инстанса ивентов?

Maksim
17.01.2018
13:47:58
выше написано. абстрактный агрегат к собственно предметной области зависит никак. каким образом там эти методы появятся - вопрос третий. Хоть прокси классы создавай. а вот почему их надо выносит в синглтон эвент стор - в душе не ипу

Maksim
17.01.2018
13:49:05
ты проблему из 1 места в другое перекладываешь. Что ты решил этим?)

Maksim
17.01.2018
13:49:26
да нет) из одного вв другое)

Aleh
17.01.2018
13:49:38
еще раз опиши как ты решаешь эту проблему

Maksim
17.01.2018
13:49:42
+ ко всему: а как ты эвенты применяешь к агрегату?

Aleh
17.01.2018
13:50:10
eventStore.recordThat(this, blahblahEvent)

Maksim
17.01.2018
13:50:24
это публичный метод7

Google
Aleh
17.01.2018
13:50:39
у ивент стора да

Maksim
17.01.2018
13:51:11
как эвент стор понимает к какому агрегату относится это событие?

Aleh
17.01.2018
13:51:18
там передается this

Maksim
17.01.2018
13:52:11
Отлично. Передался this в эвент стор. дальше, как собственно информация из эвента накладывается на агрегат?

Aleh
17.01.2018
13:52:54
это уже можно делать соглашением, аля у агрегата должен быть метод when%EventName%

Maksim
17.01.2018
13:53:07
публичный?

Aleh
17.01.2018
13:53:31
доступный ивент стору, самый простой вариант - публичный

Maksim
17.01.2018
13:54:37
дисклеймер: я ваши блатные языки не понимаю: а что мешает васе пупкину вне контекста стора дёрнуть сей метод?

Maksim
17.01.2018
13:55:03
какую проблему мы решили в итоге?

Sergey
17.01.2018
13:55:13
какую проблему мы решили в итоге?
может проще уволить Васю?

Aleh
17.01.2018
13:55:16
если ивент стор публичный, то он еще и recordThat может вызвать

Maksim
17.01.2018
13:55:30
может проще уволить Васю?
да не) мб проще синглтон не делать?)

Aleh
17.01.2018
13:55:40
какую проблему мы решили в итоге?
дублирования логики текущей транзакции

Maksim
17.01.2018
13:55:44
если он проблемы только порождает

Sergey
17.01.2018
13:55:52
да не) мб проще синглтон не делать?)
нет, жто не проще. Ты свою проблему придумал, а сингелтоном делать стор проще

так как там append-only структура - опасность минимальна

Maksim
17.01.2018
13:56:15
да чем проще?) вот объясни идиоту на пальцах: чем?)

она есть. И это уже нихрена не проще)

Aleh
17.01.2018
13:56:30
да чем проще?) вот объясни идиоту на пальцах: чем?)
логика в одном месте, а не 100 агрегат рутах

Google
Aleh
17.01.2018
13:56:34
все, больше ничем

Maksim
17.01.2018
13:56:52
это не ответ)

Aleh
17.01.2018
13:56:58
это не вопрос)

Maksim
17.01.2018
13:58:47
Сергей, так чем проще?) вот возьмём наш богомерзкий пхп: я логику protected метода apply прилепил трейтом, метод onSomeEvent в конечном агрегате private. усё. Никто из вне эвент не подсунет. Щасце, брызги шампанского, никакого "логика в сотне агрегатов"

чем проще?)

Aleh
17.01.2018
13:59:18
как собрать ивенты из нескольких агрегатов?

Maksim
17.01.2018
13:59:58
вопрос нипанимать) у тебя так же есть какой-то список наблюдаемых агрегатов

Maksim
17.01.2018
14:00:46
10 строк кода против каких-то базовых классов
и открытый метод для изменения состояния любой обезьяной без везкой на то причины. Ну такое себе

Sergey
17.01.2018
14:01:14
и открытый метод для изменения состояния любой обезьяной без везкой на то причины. Ну такое себе
мне кажется ты инкапсуляцию понимаешь с точки зрения защиты от изменения стэйта а не упрощения

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

Страница 453 из 785