@oop_ru

Страница 608 из 785
Maksim
16.04.2018
17:52:34
Не, его ща пол года так и не загрузили работой)

Он в общем ютубчик смотрел)

Roman
16.04.2018
18:02:21
дба увидел Clipper и сломался?
Некрофилия какая-то. Центуру бы ещё помянули)

Bohdan
16.04.2018
18:05:51
Некрофилия какая-то. Центуру бы ещё помянули)
меня как - то мой научрук попросил помочь за деньги дочери его друзей девочка училась на втором курсе в каком - то пафосном экономическом вузе в Москве, но на специальности, связанной с программированием (название не помню) так вот у них предмет "базы данных" был на примере Clipper я посмотрел на это, погрустил, нашёл ей побольше книг по теме и отказался - нервы дороже

Google
Bohdan
16.04.2018
18:06:21
и это было года два назад максимум, если что

Bohdan
16.04.2018
18:08:11
Ну и правильно. Это ж жесть. Хотя чего это я) В моей шаражке был Pascal и VB6)) Благо БД делали на MS SQL хотя бы)
а когда это было?) в моем вузе был раньше тоже паскаль и vb6, и вроде firebird, хотя я уже начинал с плюсов и mysql

Roman
16.04.2018
18:08:53
а когда это было?) в моем вузе был раньше тоже паскаль и vb6, и вроде firebird, хотя я уже начинал с плюсов и mysql
Да лет 5 назад. Ну и не вуз, а колледж. Вуз я так и не закончил (на заочке учился). Работать надо было.

Bohdan
16.04.2018
18:09:37
тогда не повезло - у меня тоже пять лет назад все это было...

Roman
17.04.2018
05:29:50
Как думаете можно используя CQRS + Event Sourcing полностью отказаться от реляцийниих БД и перейти на NoSQL?

Maksim
17.04.2018
05:45:18
Твм ключ/значение) стримы можно хранить без проблем в любой)

Bohdan
17.04.2018
05:53:54
я думаю, речь про документную скорее

монга и прочие

Maksim
17.04.2018
06:24:12
Монга чет не зашла(

Roman
17.04.2018
06:44:36
мне интересно смогу лия отказатся от мускуля и перейти на монгу полностю. например: Будет ли удобно работать з большим скоупом ивентов? Будет ли удобно хранить юзеров и пароли.

Dmitriy
17.04.2018
06:46:35
лучше отказаться от категоричных выборов, мнений и т.п.

Google
Dmitriy
17.04.2018
06:46:49
каждый инструмент создается для своей области

Ярослав
17.04.2018
06:49:57
Вброшу, но хайп по NoSQL был ошибкой
но денормализованные данные удобнее держать в ноускл решениях, документ вроде как быстрее выбрать, чем строку из таблички на 100+ столбцов.

Roman
17.04.2018
06:51:08
Вброшу, но хайп по NoSQL был ошибкой
тоже не согласен. в нево есть свои плюсы

Дмитрий
17.04.2018
06:51:31
Пофиксил

Ярослав
17.04.2018
06:52:36
если у тебя есть таблиц 100+ колонок. значит чтото пошло не так))
это денормализованные данные. Обычно они не маленькие.

Дмитрий
17.04.2018
06:52:45
Я считаю, что в абсолютном большинстве кейсов эффективнее обходиться без NoSQL, учитывая скорость работы и поддержку jsonb в постгре

А откуда у вас денормализованные данные — это лень или обстоятельства?

Я могу ошибаться, но первое встречается гораздо чаще второго

Ярослав
17.04.2018
06:53:30
А откуда у вас денормализованные данные — это лень или обстоятельства?
это оптимизация, когда join слишком дорогие, ты от нормализации идешь к денормализации, что бы запросы выполнялись быстрее.

Дмитрий
17.04.2018
06:54:46
По сути как кэш работает? ?

Ну и опять же, jsonb

Ярослав
17.04.2018
06:55:33
Ну и опять же, jsonb
очень конечно удобно работать с jsonb

Дмитрий
17.04.2018
06:55:44
¯\_(ツ)_/¯

Ярослав
17.04.2018
06:55:47
особенно когда по полям, внутри jsonb надо фильтрацию делать

По сути как кэш работает? ?
кеш кешируют результат, денормализация убирает лишние джойны. Когда приходится джойнить таблицы даже лям на лям записей, уже грустно

Google
Roman
17.04.2018
06:59:12
я ж могу создать CreateUserEvent, и потом по почте найти ивент и юзера в нем

Maksim
17.04.2018
06:59:29
если у тебя нету какого-то индекса, не сможешь

индекс - не в контексте конечного стораджа. А в контексте какого-то kv, который хранит связь между требуемым значением и агрегатом

https://github.com/mmasiukevich/service-bus-demo/blob/master/src/Customer/Services/RegisterCustomerService.php#L58 как-то так. если хранить в jsonb в каком-нить постгресе и искать финальную версию email'а юзера в громадном списке событий - херня выходит

Roman
17.04.2018
07:02:29
ясно. спасибо

Maksim
17.04.2018
07:04:25
при es у тебя нету кучи табличек, где данные красиво разложены. Поэтому поиск без представлений - занятие странное. а представления (зависит от реализации, конечно), тоже не самая актуальная штука

Roman
17.04.2018
07:44:51
Maksim Masiukevich - смотрю твой код, можеш расказать зачем ти хочеш перейти на AmPHP. "Get away from callback hell (change ReactPHP to AmPHP)"

Maksim
17.04.2018
07:46:35
скажем так, вся срань с промисами там изящно спрятана

Roman
17.04.2018
07:46:56
суть у них одна и таже я верно понял?

Maksim
17.04.2018
07:47:09
Roman
17.04.2018
07:47:17
ясно) спасибо посмотрю в ету сторону

Aleh
17.04.2018
09:37:21
Хоть индексы добавляй, хоть фильтруй, хоть на лету строй

И все равно быстрее монги

Ярослав
17.04.2018
09:45:18
Bohdan
17.04.2018
09:49:23
пинг

Aleh
17.04.2018
09:54:27
пруфы?
http://tiborsimko.org/postgresql-mongodb-json-select-speed.html http://erthalion.info/2017/12/21/advanced-json-benchmarks/

Евгений
17.04.2018
09:59:55
пинг

Roman
17.04.2018
10:03:36
все переходим на посгрес все

Google
Hell
17.04.2018
10:22:21
проще в несколько раз, чем процедурную ооп лапшу
взаимноисключающие параграфы детектед

Maksim
17.04.2018
10:24:42
монга ок для лентяев и любителей apt-get install) если смотреть дальше и больше, начинается развлекуха и её необходимость вызывает вопросы

Hell
17.04.2018
10:33:16
http://blog.ploeh.dk/2013/01/09/MetadataRoleHint/
товарищ профессор, студент 1-го курса не понимает, паттерн detached metadata с ручным добавлением в контейнер лучше, чем все остальное (т.к. проще, т.е. по KISS ) ?

detached metadata "injecting mapping dictionary from composition root"

у меня инстанцы IBasketCalculator уже имеют зависисмости в конструкторе

т.е. они должны быть в контейнере

как их проще добавить в SimpleInjector ?

Roman
17.04.2018
12:05:39
Одним из преимуществ использования Event Sourcing пишут о возможности восстановления объекта до нужной точки (состояния). Предположим что я использую Doctrine для работы с БД. И я удалил на каком-то из этапов жизненного цикла заказа колонку с БД в которой был какойто атрибут заказа. Как я смогу создать обект на основе ивента где еще есть информация о колонке? Получается что я теряю цилоснисть объекта. И во время востановлення не будет найден нужна колонка и я получу ошибку. Или я неверно понял возможность востановления?

Maksim
17.04.2018
12:06:13
нет никаких колонок с заказами

у тебя есть максимум 2 таблицы

Roman
17.04.2018
12:07:21
я думал мы храним состояние обекта на момент когла пришол ивент

Sergey
17.04.2018
12:07:34
нет, с ES ты хранишь ивенты

Maksim
17.04.2018
12:07:34
мы храним список событий

Sergey
17.04.2018
12:07:35
и только их

Google
Maksim
17.04.2018
12:07:47
а не состояние. состояние - следствие наступления событий

Sergey
17.04.2018
12:07:48
снэпшеты данных построенные по этим ивентам - это скорее как кэш

а не как "храним"

потому если тебе надо модель данных поменять - ты просто проигрываешь события заново

если у тебя у сущности по 10-100 событий то можно вообще даже снэпшеты не делать

Roman
17.04.2018
12:08:31
чтоб потом пройтися по цепочки и получить обект

Sergey
17.04.2018
12:08:53
entity = leftFold(events)

Roman
17.04.2018
12:09:29
да.. пока сложно идет информация.. нужно еще разбиратся. спасибо

Sergey
17.04.2018
12:10:19
да.. пока сложно идет информация.. нужно еще разбиратся. спасибо
просто выкинь из головы свои реляционные базы, доктрины и прочую чушь

Maksim
17.04.2018
12:11:18
да.. пока сложно идет информация.. нужно еще разбиратся. спасибо
ток не надо на моём примере учиться) смотри лучше более ортодоксальные примеры и первоисточники) а то я там форк увидел)

Bohdan
17.04.2018
12:49:21
господа, возвращаясь к уходу от сеттеров

по вашему мнению, корректно ли использовать методы вроде $foo->change($firstName, $lastName, $email, $phone) для штук вроде обработчика формы редактирования (утрированно)?

Maksim
17.04.2018
12:51:32
я бы сделал 2 объекта и на 2 метода разделил)

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