Size: a a a

2020 December 31

MA

Mark Andreev in pro.jvm
Максим Шерстобоев
Народ привет, всех с наступающим. Вопрос по архитектуре пагинация таблиц и контента. Какую архитектуру вы используете? Два асинхронных аякса на количество и сами данные, или в первом запросе вы конкатенируете количество с данными, или есть какие то другие варианты?
Посмотрите в сторону spring data, там Page<T> возвращает и сами сущности и их количество.
В общем случае это лучший проход.

Но если вы работаете с time axis data, то нужно смотреть в сторону slice и не думать в сторону количества записей. Пример: посты в ленте ВК, отсортированные по дате публикации.
источник

AL

Alexandr Latushkin in pro.jvm
Максим Шерстобоев
Народ привет, всех с наступающим. Вопрос по архитектуре пагинация таблиц и контента. Какую архитектуру вы используете? Два асинхронных аякса на количество и сами данные, или в первом запросе вы конкатенируете количество с данными, или есть какие то другие варианты?
Если речь не идёт о больших объемах, то кажется тут и думать не о чем - братььтот подход что реализован в используемом фреймворке
источник

МШ

Максим Шерстобоев... in pro.jvm
Mark Andreev
Посмотрите в сторону spring data, там Page<T> возвращает и сами сущности и их количество.
В общем случае это лучший проход.

Но если вы работаете с time axis data, то нужно смотреть в сторону slice и не думать в сторону количества записей. Пример: посты в ленте ВК, отсортированные по дате публикации.
На проекте нет возможности юзать спринг дату, как вариант конечно пагинация вызывать, когда юзеру необходимо узнать количество всех страниц, было интересно, какие подходы другие юзают
источник

AL

Alexandr Latushkin in pro.jvm
Если же там 100500мильенов строк и термин пагинация не вполне уместен т.к. эффективный доступ будет возможен только последовательной итерацией
источник

AL

Alexandr Latushkin in pro.jvm
Поэтому при скорее всего получится:
1)поисковый запрос.
Возвращает "курсор" на получение следующей порции данных. Дополнительно может возвращать количество, и первую страницу данных. Может не возвращать.
2)далее запросы по "курсорам" - там возвращается только очередная порция данных. Без счётчиков
источник

МШ

Максим Шерстобоев... in pro.jvm
Окей, спасибо 👌 Отрублю тогда явное количество страниц
источник

D𝔇

Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶... in pro.jvm
central hardware
компилятор в плане того, как делать byte code будет гораздо умнее любого думающего программиста
Согласен. Но сама теоретическая возможность сказать компилятору "заинлайни всё" и трудности ее реализации - это интересная тема для обсуждения.
источник

П

Павел in pro.jvm
Vit Sh
В какой версии ?
12.2
источник

ZM

ZLoyer Matveev in pro.jvm
Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶
Согласен. Но сама теоретическая возможность сказать компилятору "заинлайни всё" и трудности ее реализации - это интересная тема для обсуждения.
Достаточно скучная возможность. Сложность основная с тем чтобы понимать, когда это полезно, а когда вредно. Особенно если смотреть на длительном отрезке времени, когда код меняется.

Куда интереснее штуки с более сложными рерайт механиками. Например, фьюжн/дефорестейшн.
источник

MA

Mark Andreev in pro.jvm
Максим Шерстобоев
На проекте нет возможности юзать спринг дату, как вариант конечно пагинация вызывать, когда юзеру необходимо узнать количество всех страниц, было интересно, какие подходы другие юзают
Я как референс
источник

A

Anton in pro.jvm
А у идеи есть вообще поддержка груви конфигов для спринга? А то даже создать не предлагает, даже для груви проекта
источник

A

Anton in pro.jvm
И в интернете информации почему то очень очень мало
источник

A

Anton in pro.jvm
можно ли в обычное спринг приложение добавить груви конфигурацию для бинов?
источник

AE

Alexandr Emelyanov in pro.jvm
central hardware
компилятор в плане того, как делать byte code будет гораздо умнее любого думающего программиста
Это JIT
источник

AE

Alexandr Emelyanov in pro.jvm
источник

r

reed in pro.jvm
Спасибо, сейчас туда напшиу
источник

N

Nick in pro.jvm
Mikhail Borodin
Если кратко - это бредовая затея и заниматься ей нет смысла. Помимо того, что это, в принципе, на проектах крупнее "hello word" крайне сложно организовать - ты через борт кидаешь все принципы ООП (да и в целом объектный подход) и получаешь кучу проблем. Ну и если существует хоть малейшая вероятность, что поддержкой будешь заниматься не только ты, то 99.(9)% разрабов не оценят твой творческий подход.
Как тут выше уже сообразили эта операция делается автоматом перед компиляцией, или может даже после нее, позволяя избавить от необходимости работы с понятием объекта как врапера над набором полей
источник

ES

Evgeny Sanevich in pro.jvm
Nick
подскажите как искать в гугле или может сразу направьте на нормальные инструкции/тулы/статьи для убирания из кода всех классов (хотя бы своих), чтобы остались только статические методы и заинлайненные поля.
Или может даже ктото с этим игрался и может сразу ответить на вопрос,  будет ли такой код лучше в части производительности или нет и останется ли он при этому стабильным?
И да я понимаю что дебаг в таком случае превращается в ад и вцелом этой задачей по-хорошему занимает jit, но все же интересно применение на уровне проекта
похоже на project Valhalla https://openjdk.java.net/jeps/169
источник

I

Igor in pro.jvm
Nick
Как тут выше уже сообразили эта операция делается автоматом перед компиляцией, или может даже после нее, позволяя избавить от необходимости работы с понятием объекта как врапера над набором полей
Мне кажется, тут скорее имеется компиляция java сразу в бинарный код, и специализированные тулзы для этого есть

Но вот только с чего вы взяли что это как-то избавляет от работы с объектом (не использую 'избавить', потому что от него не надо избавляться)

Те же объекты в c++ это тоже не какая-то магия, в бинарнике все равно все превращается в переменные да указатели
источник

N

Nick in pro.jvm
Ну прикол в том чтобы остались только примитивы после такой операции. И возможно следующим этапом дойти до гарбажфри реализации или около нее
источник