
Victor
18.12.2016
17:39:07
1. быстрее будет работать,
2. Меньше магии
3. проще в поддержке
тут уже начинаются namedQuery и по сути тот же SQL, что отстойно... поэтому мне нравится пока criteria

Sergey
18.12.2016
17:39:52
http://projects.spring.io/spring-data-rest/

Victor
18.12.2016
17:39:59
один раз разобрался и написал, потом изи что-то добавляешь и переделываешь, даже если кардинально

Google

Sergey
18.12.2016
17:40:00
мне вот эта концепция нравится, если применительно к java
тупо строишь read модель поверх твоего приложения под те UI которые нужны и не паришься
потому что если у тебя операции чтения и записи работают с одними и теми же структурами - ну такое... представление данных для чтения может сильно отличаться от того, что удобно для записи
если доводить до крайности - event sourcing

Victor
18.12.2016
17:41:40
ну я также и делаю с гибером
тупо строишь read модель поверх твоего приложения под те UI которые нужны и не паришься

Sergey
18.12.2016
17:42:01

Victor
18.12.2016
17:42:17
а в чем противоречие
модель то она под UI и есть

Sergey
18.12.2016
17:42:41
а что будешь делать в ситуациях, когда на запись тебе удобнее другая структура данных нежели нужна на чтение?
две сущности?
или как?

Victor
18.12.2016
17:43:20
ну где даже критерия не спасет можно делать неймед квери

Google

Victor
18.12.2016
17:43:28
это уже считай тот же твой любимый чистый sql

Sergey
18.12.2016
17:43:44
да не, мне критерии тоже нравятся
просто я могу просить не мэпить результат на сущность а жахнуть сразу в динамическую структурку и не париться
тупо слать в json_encode
p.s. я похапэшник, у нас может чуть по другому

Victor
18.12.2016
17:45:50
хз в итоге на практике вполне хватает фронтэндщикам отдать json под их задачи. Модели я проектирую тоже исходя из задач, которые нужны фронту. ЕСЛИ фронту нужны идиотские json (где-то что то замиксовать, где то выкинуть, а там вообще теги по разному называть... итд) то тут и будет в любом случае геморой
потому что нужен будет маппинг
но и при отказе от орм тоже будет маппинг
один хрен если ты берешься за такую задачу будет геморой

Sergey
18.12.2016
17:47:05
> но и при отказе от орм тоже будет маппинг
не не, пожалуй я не так выразился. Я не предлагаю отказываться от ORM и фигачить native query, я предлагаю не мэпить результаты запросов на сущности.

Victor
18.12.2016
17:47:24
а на что их еще мэппить в случае ORM

Sergey
18.12.2016
17:47:37
ну и еще веселые штуки - иногда например надо писать в постгрю а читать из эластики уже подготовленные агрегированные данные

Victor
18.12.2016
17:48:12
ну в спринг+хибер мы делали такое, вполне легко решается)

Sergey
18.12.2016
17:48:37

Victor
18.12.2016
17:48:52
была постгря+оракл
использовался просто нужный конекшн для операции
но там были свои подводные камни спринга, он иногда дурно себя вел

Sergey
18.12.2016
17:50:16
не не, ты пишешь в постгрю, потом ложишь задачу на синк в очередь, перестраиваешь агрегацию в эластике, и списки всякие и поиски уже через нее

Victor
18.12.2016
17:50:19
транзакцию откроет для одной бд и операцию проведет в другой
ну скажу честно - хз

Google

Sergey
18.12.2016
17:50:56
хз... короч я знаю что для java почти все что надо есть

Aleh
18.12.2016
18:56:13
На тему event sourcing. Вот какой самый топовый вариант хранить и ивенты и вообще с ними работать?
Их в любом случае надо куда-то складывать, если в корне аггрегата хранить, то кроме лёгкой зависимости от инфраструктуры надо их ещё оттуда противно доставать
А если вне сущности, то ещё хуже (

Sergey
18.12.2016
18:59:11
кого противно доставать? события?

Aleh
18.12.2016
19:02:45
А чего Егора Бугаенко не позвали?

Sergey
18.12.2016
19:08:24
хз но я подпер стикеры с java богами
Да
я просто не понял о чем ты? Я ж не призываю отказыаться от сущностей, ты в случае с тем же event sourcing выборки для UI будешь делать только из read model, нет?

Aleh
18.12.2016
19:11:41
Вопрос только по write model и events

Sergey
18.12.2016
19:12:10
вопрос в воспроизведении событий?

Aleh
18.12.2016
19:12:20
И сохранении

Sergey
18.12.2016
19:12:30
ну с сохранением можно тупо сохранять доменные события

Aleh
18.12.2016
19:12:38
И вообще, что аггрегат должен делать

Sergey
18.12.2016
19:13:28
блин надо бы пописать чего
он должен менять свой стэйт + генерить ивенты
по идее

Aleh
18.12.2016
19:15:49

Google

Aleh
18.12.2016
19:15:56
Самое главное - логика))

Sergey
18.12.2016
19:16:27
короч надо пилить наш недо магазинчик

Aleh
18.12.2016
19:16:38

Sergey
18.12.2016
19:16:42
через пару часиков засяду

Aleh
18.12.2016
19:17:03
Welcome )

Yegor
18.12.2016
19:17:13
спасибо)

Sergey
18.12.2016
19:19:03
@Enleur
там чего вчера придумали?
надо еще корзину через ES запилить

Aleh
18.12.2016
19:19:58

Sergey
18.12.2016
19:20:09
помимо микро трейдинга

Aleh
18.12.2016
19:20:42
Финансы мне кажется покруче
А ещё есть подозрение, что медицина)

Sergey
18.12.2016
19:21:10
покруче - да, но... вся смакота будет когда ты будешь пилить систему которая должна оценивать динамику и принимать решения

Aleh
18.12.2016
19:21:29
Не спорю

Sergey
18.12.2016
19:21:31
тогда возможность проигрывать уже собранные ивенты на новом алгоритме просто бесценна
можно получать довольно точный фидбэк

Aleh
18.12.2016
19:22:00
Главное - надо чтобы ивенты были как можно стабильнее

Google

Sergey
18.12.2016
19:22:13

Aleh
18.12.2016
19:22:16
Менять ивенты в миграциях - боль

Sergey
18.12.2016
19:22:28
ну не меняй)

Aleh
18.12.2016
19:22:58
Так отсюда и вытекает маленький нюанс)

Sergey
18.12.2016
19:23:00
храни всю имеющуюся инфу, в этом же суть

Aleh
18.12.2016
19:24:05
Очень часто бывает, что вон то старое событие на самом деле 5 отдельных. Поддерживать все версии со временем станет трудно
Не часто, просто бывает
Вот про что я

Sergey
18.12.2016
19:27:06
ну это возможно... возвращаемся к принципам SOLID и хрустальному шару

Sergey
18.12.2016
20:20:22

Aleh
18.12.2016
22:32:45

Sergey
18.12.2016
22:39:17
да, в gherkin было бы идеально) поможешь?)
ну хотя бы ревью

Aleh
19.12.2016
08:55:42

guga
20.12.2016
17:26:32
Тут @yegor256 вещает о java и oop https://youtu.be/qAxLtSYN0nw

Aleh
20.12.2016
17:33:14
о, live

Ilia
20.12.2016
17:40:49
А запись будет?