|
Очень много CompletableFuture
|
|||
---|---|---|---|
#18+
Стас. Ты? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2020, 10:39 |
|
Очень много CompletableFuture
|
|||
---|---|---|---|
#18+
Заколебал усы менять. Прибереги хоть этот акк. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2020, 12:11 |
|
Очень много CompletableFuture
|
|||
---|---|---|---|
#18+
Zzz79 Таже самая петрушка и у нас- кто то один увидел эту шляпу и теперь она сплошь и рядом во всех наших сервисах,где надо и где не надо ловить ошибки становится тяжело,код превращается в какую то трудно поддерживаемую шляпу по этому поводу недавно у нас был митинг - сказали теперь каждый стрим и комплфьючер должен быть обоснован иначе получите по щщам я вот не пойму ты то откуда знаешь где надо где не надо. у реактивочки есть свой прикол. хотя не уверен насколько он обоснован но есть мнение что помогает избегать ряд ошибок. ну и конечно же писать функциональные колбаски. (которые фиг расширишь если надо) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2020, 14:44 |
|
Очень много CompletableFuture
|
|||
---|---|---|---|
#18+
Андрей Панфилов bob1970 Примерно так: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2020, 10:09 |
|
Очень много CompletableFuture
|
|||
---|---|---|---|
#18+
WGA Т.е. несколько обращений к репозиторию в одну транзакцию вообще не объединить? Код: java 1. 2. 3. 4. 5. 6. 7.
Из-за того, что транзакцию прилепить некуда в сущностях нельзя использовать поля с FetchType.LAZY, ну или вообще поля с сущностями использовать нельзя, а только идентификаторы, в следствие чего вылезают какие-то нереальные грабли, например: - при классическом подходе повторный getItem тащит сущность из памяти, а здесь она каждый раз чистая достается, т.е. если сущность у нас мутирует, то ее придется постоянно по стэку таскать (еще и код более тщательно ревьювить) - использование идентификаторов в полях сущностей убивает кучу возможностей, предоставляемых Criteria API, в т.ч. статическую типизацию т.е. получается, что взяли довольно тяжелый ОРМ, у которого есть куча своих проблем, начали его использовать через Ж, и растеряли все его преимущества, которые хоть как-то нивелировали его тяжесть. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2020, 10:37 |
|
Очень много CompletableFuture
|
|||
---|---|---|---|
#18+
WGA Т.е. несколько обращений к репозиторию в одну транзакцию вообще не объединить? Код: java 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2020, 11:24 |
|
Очень много CompletableFuture
|
|||
---|---|---|---|
#18+
PetroNotC Sharp по старинке это так Код: java 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2020, 12:04 |
|
Очень много CompletableFuture
|
|||
---|---|---|---|
#18+
Топик (CompletableFuture) убивает идею консистентности данных по интерфейсу. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2020, 12:15 |
|
Очень много CompletableFuture
|
|||
---|---|---|---|
#18+
CompletableFuture - это тупая попытка перетянуть continuation монаду в императивный язык. Стримы хоть как-то взлетели, а эти спекописатели все никак не успокоятся. Ну нельзя перетянуть только часть идеи. Все описанные проблемы решаются в рамках ФП парадигмы, но при этом конечно появляются другие, но не такие ущербные, так что золотой пули все же нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2020, 12:23 |
|
Очень много CompletableFuture
|
|||
---|---|---|---|
#18+
Андрей Панфилов убивает mayton убивает Надо подумать... ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2020, 12:41 |
|
Очень много CompletableFuture
|
|||
---|---|---|---|
#18+
Язык определяет сознание. Вот с тех пор как Oracle перешел на полу-годичный цикл Sep/March/YYYY релизов - именения пошли просто бешеные. Такого не было до восьмерки. И комьюнити начало закидывать в язык новые идеи. Но новые идеи часто просто украдены из смежных языков и технологий где они органичны. Что еще нужно затащить в этот скромный и консервативный язык чтобы окончательно его превратить в помойку? Хотите язык где есть всё и только чёрта в ступе не хватает? Идите в Scala. Там есть любой анальный вибратор чтоб пощекотать себе очько. И логику можно описать 20 способами. Но нет же. Не идут в Скала. Тяжело там. Хотят мозговой онанизм внутри java. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2020, 12:54 |
|
Очень много CompletableFuture
|
|||
---|---|---|---|
#18+
Андрей Панфилов PetroNotC Sharp по старинке это так Код: java 1. 2. 3. 4.
Не понял связи. Паттерн репозиторий это работа с коллекцией из бд не замечая самой бд. Транзакции к этому функционалу побоку. ... Понятно, что тут намешено всего. Транзакции jpa, транзакции спринга и менеджер сущностей. Проблема писателей кода. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2020, 15:35 |
|
Очень много CompletableFuture
|
|||
---|---|---|---|
#18+
PetroNotC Sharp подумал.... Не понял связи. Паттерн репозиторий это работа с коллекцией из бд не замечая самой бд. Транзакции к этому функционалу побоку. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2020, 18:15 |
|
Очень много CompletableFuture
|
|||
---|---|---|---|
#18+
Андрей Панфилов Нет, репозиторий нужен для того, чтобы API для работы с данными (в общем случае не rdbms) не выставлять наружу Андрей Панфилов при этом "по классике" репозиторий сам присоединяется к текущей транзакции Есть ручное управление когда в коде пишу. Есть автоматическое на аннотациях. Декларативное. Они равноправны. И оба мной любимы. Поменять реализацию ОРМ позволяет JPA. Имхо ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2020, 18:43 |
|
Очень много CompletableFuture
|
|||
---|---|---|---|
#18+
PetroNotC Sharp с чего это Сам? jpa specificationThe PersistenceContext annotation is used for entity manager injection. The type element specifies whether a transaction-scoped or extended persistence context is to be used, as described in section 7.6. The synchronization element specifies whether the persistence context is always automatically joined to the current transaction (the default) or is not joined to the current transaction unless the joinTransaction method is invoked by the application. The unitName element may optionally be specified to designate the persistence unit whose entity manager factory is used by the container. The semantics of the persistence context synchronization type are further described in section 7.6.1. Section 10.5.2 provides further information about the unitName element. т.е. чтобы в житуи EM не присоединялся к текущей транзакции нужно специально приседать, спринговая инфраструктура работает точно также, т.е. если у кого-то это не так, то это значит что в проекте творится полная Ж. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2020, 23:23 |
|
Очень много CompletableFuture
|
|||
---|---|---|---|
#18+
Андрей Панфилов, Ну хорошо, добавляем третий вариант управления транзакциями: - по умолчанию (ничего не пишем) - ручное em.дайТранзакцию.Старт - аннотации Все логично, и меня все три варианта устраивают. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2020, 07:42 |
|
Очень много CompletableFuture
|
|||
---|---|---|---|
#18+
Андрей Панфилов WGA Т.е. несколько обращений к репозиторию в одну транзакцию вообще не объединить? Код: java 1. 2. 3. 4. 5. 6. 7.
Из-за того, что транзакцию прилепить некуда в сущностях нельзя использовать поля с FetchType.LAZY, ну или вообще поля с сущностями использовать нельзя, а только идентификаторы, в следствие чего вылезают какие-то нереальные грабли, например: - при классическом подходе повторный getItem тащит сущность из памяти, а здесь она каждый раз чистая достается, т.е. если сущность у нас мутирует, то ее придется постоянно по стэку таскать (еще и код более тщательно ревьювить) - использование идентификаторов в полях сущностей убивает кучу возможностей, предоставляемых Criteria API, в т.ч. статическую типизацию т.е. получается, что взяли довольно тяжелый ОРМ, у которого есть куча своих проблем, начали его использовать через Ж, и растеряли все его преимущества, которые хоть как-то нивелировали его тяжесть. Lazy нужно подгружать через @Query(.. JOIN FETCH), тогдо проблем не возникнет, вообще, все связи должны быть LAZY и подгружаться только по необходимости ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2020, 08:46 |
|
Очень много CompletableFuture
|
|||
---|---|---|---|
#18+
PetroNotC Sharp - ручное em.дайТранзакцию.Старт ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2020, 10:21 |
|
Очень много CompletableFuture
|
|||
---|---|---|---|
#18+
Андрей Панфилов, Угу. И длинных транзакций не существует. И десктопа в мире нету. И без спринга жизни нету. Не надо так узко на java. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2020, 11:00 |
|
Очень много CompletableFuture
|
|||
---|---|---|---|
#18+
PetroNotC Sharp Угу. И длинных транзакций не существует. И десктопа в мире нету. И без спринга жизни нету. Не надо так узко на java. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2020, 12:00 |
|
Очень много CompletableFuture
|
|||
---|---|---|---|
#18+
Андрей Панфилов Длинные транзакции плохи в web Вы же не сказали "если спринг + если JPA +.... Так как у JPA вообще нет управления транзакциями. Аннотация от спринга. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2020, 12:14 |
|
Очень много CompletableFuture
|
|||
---|---|---|---|
#18+
Андрей Панфилов, Вы водителей с ручной коробкой тоже не любите? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2020, 12:15 |
|
Очень много CompletableFuture
|
|||
---|---|---|---|
#18+
PetroNotC Sharp Вы огульно отрицаете ручное управление. PetroNotC Sharp Так как у JPA вообще нет управления транзакциями. Аннотация от спринга. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2020, 12:53 |
|
Очень много CompletableFuture
|
|||
---|---|---|---|
#18+
Андрей Панфилов Конечно, ручное управление транзакциями - это дичь Андрей Панфилов то подавляющее большинство кода должно присоединяться к уже существующей транзакции, Вы выше сказали что это default. ЭТО НЕ УПРАВЛЕНИЕ ТРАНЗАКЦИЯМИ. Если не писать beginTran руками в коде то так оно и будет. Где вы проблемы увидели? Андрей Панфилов javax.persistence.SynchronizationType - это из какого модуля? Я про аннотации гочорил. Управляют с помощью аннотации. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2020, 13:16 |
|
Очень много CompletableFuture
|
|||
---|---|---|---|
#18+
авторспецификация JPA сама по себе не предоставляет никакого декларативного управления транзакциями http://akorsa.ru/2016/08/kak-na-samom-dele-rabotaet-transactional-spring/ ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2020, 13:20 |
|
|
start [/forum/topic.php?fid=59&gotonew=1&tid=2120860]: |
0ms |
get settings: |
24ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
44ms |
get topic data: |
10ms |
get first new msg: |
38ms |
get forum data: |
3ms |
get page messages: |
435ms |
get tp. blocked users: |
2ms |
others: | 9ms |
total: | 585ms |
0 / 0 |