Например используя рефлексию в Java можно вызвать метод класса А, передав ей инстанс класса Б, наследующего от А. Опять же, в JS жесткие правила. Никакой магии нет. Ты либо знаешь как работают эти правила, либо для тебя это все какая-то авада кедавра. Не надо списывать собственную лень на неинтуитивность. Программирование и не должно быть интуитивным, таким языком никто не будет пользоваться. Это не интерфейс ворда или фотошопа.
Использовать Page нежелательно, потому что это всегда 2 запроса к БД - 1 выбор данных, 2 подсчет числа доступных элементов. В вашем случае нет фильтров, но в если они будут, то можно легко повесить БД под нагрузкой таким образом.
Есть в спринге класс Slice - это тот же Page, но без вычисления количества страниц и элементов, желательно использовать именно его. Работать будет быстрее, а если нужно вычислять количество подходящих страниц и элементов, то фронту лучше делать 1 запрос в специальный эндпоинт для этого.
Правда в спринге как-то странно поддержка этого класса сделана, в последний раз когда с ним работал приходилось делать свою имплементацию репозитория, что бы спеку поддерживать:
@NoRepositoryBean
public class JpaSpecificationRepositoryWithSliceImpl<T, ID extends Serializable>
extends SimpleJpaRepository<T, ID>
implements JpaSpecificationRepositoryWithSlice<T, ID> {
private final EntityManager em;
public JpaSpecificationRepositoryWithSliceImpl(JpaEntityInformation<T, ?> entityInformation, EntityManager em) {
super(entityInformation, em);
this.em = em;
}
@Transactional(readOnly = true)
@Override
public Slice<T> sliceAll(Specification<T> spec, Pageable pageable) {
var list = this.getQuery(spec, pageable)
.setFirstResult((int) pageable.getOffset())
.setMaxResults(pageable.getPageSize())
.getResultList();
return new SliceImpl<>(list);
}
@Transactional(readOnly = true)
@Override
public Slice<T> sliceAll(Pageable pageable) {
var cb = em.getCriteriaBuilder();
var q = cb.createQuery(getDomainClass());
var f = q.from(getDomainClass());
q.select(f);
q.orderBy(QueryUtils.toOrders(pageable.getSort(), f, cb));
var list = em.createQuery(q)
.setFirstResult((int) pageable.getOffset())
.setMaxResults(pageable.getPageSize())
.getResultList();
return new SliceImpl<>(list);
}
}
Разница между Page и Slice на 1 000 000 элементов даже без фильтров будет весьма ощутимой уже на глаз. В первом случае вся БД всегда читается, во втором только кусочек ограниченный размером страницы.
В начале вы говорите, что никакой новизны нет и уже все сделано. Теперь вы говорите, что все что предложено чушь и не имеет смысла, поэтому смотреть что там дальше тоже.
Такой вариант технически реализовать можно, но сложнее, хотя внимательный разработчик увидит в модели данных лазейку, как это можно сделать, но тогда пропадет возможность почти в реальном времени видеть свою позицию. Не в курсе того, как это реализовано на Украине.
Так же, мое лично мнение, что такой вариант не является оптимальным. Например вы желаете поступить в вуз - А, Б и В, при этом если вы не проходите на бюджет во всех трех, то желаете поступить на платное в вуз Б. С описанной вами системой это сделать можно конечно, только придется еще и приоритеты для платных мест заводить каждому абитуриенту.
Основной фишкой предложенного мой варианта в том, что в этапе 4 у абитуриента есть максимальная полнота информации, а главное, что у всех абитуриентов уже отправлено согласие куда именно он желает поступить, а так как это означает лишь изменение собственного выбора, то маловероятно, что таких людей будет много. Вы правда думаете, что из топового вуз стобальник заберет документы, что бы идти куда-то еще? Если списки публичные, то особо активные могут и проверить куда поступает еще абитуриент №123134, а то и вовсе ссылку ставить, что он выбрал институт такой-то, перейти к списку поступающих. Сам процесс будет более предсказуемым. Я уверен, что 90% абитуриентов даже не будут пользоваться своим правом изменить согласие на поступление, потому что уже на момент дачи согласия (3 этап) можно будет увидеть кто поступает и с какими баллами, потому что новых людей в список поступающих добавить нельзя.
Просто наболело от всяких собак на сене, у которых "все же хорошо, чего ты дергаешься?".
И повторюсь, это статья техническая и цель - обучение разработчиков писать нормальный софт.
Не поймите меня не правильно, но позицию этого человека я не поддерживаю, потому что позиция заключается в "не я такой, жизнь такая". Любой закон - это только бумажка, которую изменить можно, была бы воля это делать. Любая организация - это всего лишь договоренность, которую можно изменить, была бы воля это делать. А ее судя по всему нет, поэтому нам и предлагают постоянно одно и то же блюдо "Ешьчёдали".
что делится фактами из практики и сообщает то, что иначе пришлось бы выуживать.
Он лишь сообщил, что предложенное мной уже в той или иной степени существует, хотя разница есть и он это указал. А раз оно уже почти такое же, то я вообще не вижу проблем в том, что бы сделать одну федеральную систему. Тем более что архитектура позволяет каждую минуту обновлять состояние для всех вуз страны в виде сгенерированных html, которые как статику можно раздавать еще быстрее. Хотя опять же, финальный вариант решения зависит от специфики, и той информации, что он предоставил - не достаточно для этого.
Государство так не работает, потому что кому-то нужно именно так, как оно сейчас есть - свисток для жопы.
Человек вам пытался объяснить, что есть решения грамотные, а есть не грамотные.
А что касается статьи, она для разработчиков, а не чиновников. Цель - обучение разработчиков писать нормальный софт, исправлять бедлам в головах "блатных" чиновников я не собираюсь.
Скорее КНР для своих 100 млн абитуриентов сделает подобную платформу, чем в РФ что-то сделают хотя бы на троечку, потому что за последние 30 лет как-то в среднем даже неуд ставить сложно.
А законы, они меняются. Иногда сразу все. Учите историю. Все дальнейшие комментарии по поводу законодательства и нытья по поводу особенностей национальной юриспруденции буду удалять. Статья техническая, если у вас есть вопросы технического характера задавайте, иначе валите в свои... кабинеты.
Отправлять данные, которые заведомо не используются клиентом - это либо огромный косяк архитектора проекта, который такое захотел, либо косяк программиста, который поленился скрывать данные или выдает напрямую объект, например из БД, простая прокси бы полностью решила проблему;
Персональные данные отправлять без необходимости - не самая лучшая затея, потому что можно довольно легко организовать канал утечки, с последующим иском банку на пару млн рублей каждому пострадавшему ( Это не призыв, а лишь констатация факта того, что данные могут быть украдены );
HTTPS не дает 100% защиту, украсть данные можно внутри их сети, потому что там они так же передаются. По хорошему персональные данные без явного запроса клиента (хотя зачем они ему?) никуда не должны уходить с сервера, где они храняться;
При создании защищенных сетей не бывает такого понятия как "ну и что", вы обязаны ЛЮБЫЕ факторы взлома или утечки данных пресекать на корню. Если этого не делается, значит служба безопасности Раффайзена не работает вообще, хотя возможно, что их дурят, но тогда это вопрос об их компетентности.
На месте руководства Раффайзена стоило бы принять меры.
Если ты преступник (например наркоторговец), то для тебя очень выгодно, что можно безопасно передать деньги в другую страну.
Банковским переводом не удается почему-то это сделать, а перевезти несколько чемоданов — на таможке тормознут.
Например используя рефлексию в Java можно вызвать метод класса А, передав ей инстанс класса Б, наследующего от А.
Опять же, в JS жесткие правила. Никакой магии нет. Ты либо знаешь как работают эти правила, либо для тебя это все какая-то авада кедавра. Не надо списывать собственную лень на неинтуитивность. Программирование и не должно быть интуитивным, таким языком никто не будет пользоваться. Это не интерфейс ворда или фотошопа.
А что с ним не так? Оно же идет по правилам. Причем сведено до если-то. Если лень прочесть спецификацию языка, то да, будет не понятно.
Для получения более заразного и опасного вируса - продлите прописку?
На паникующих легче заработать, можно любую дичь втирать.
Скоро хабр переименуют в твиттер и ограничат длинну статьи в 255 символов.
ну нахер, я зубы чистить....
Ei incumbit probatio qui dicit, non qui negat
Использовать Page нежелательно, потому что это всегда 2 запроса к БД - 1 выбор данных, 2 подсчет числа доступных элементов. В вашем случае нет фильтров, но в если они будут, то можно легко повесить БД под нагрузкой таким образом.
Есть в спринге класс Slice - это тот же Page, но без вычисления количества страниц и элементов, желательно использовать именно его. Работать будет быстрее, а если нужно вычислять количество подходящих страниц и элементов, то фронту лучше делать 1 запрос в специальный эндпоинт для этого.
Правда в спринге как-то странно поддержка этого класса сделана, в последний раз когда с ним работал приходилось делать свою имплементацию репозитория, что бы спеку поддерживать:
Разница между Page и Slice на 1 000 000 элементов даже без фильтров будет весьма ощутимой уже на глаз. В первом случае вся БД всегда читается, во втором только кусочек ограниченный размером страницы.
В начале вы говорите, что никакой новизны нет и уже все сделано. Теперь вы говорите, что все что предложено чушь и не имеет смысла, поэтому смотреть что там дальше тоже.
Как-то быстро вы переобуваетесь.
Такой вариант технически реализовать можно, но сложнее, хотя внимательный разработчик увидит в модели данных лазейку, как это можно сделать, но тогда пропадет возможность почти в реальном времени видеть свою позицию. Не в курсе того, как это реализовано на Украине.
Так же, мое лично мнение, что такой вариант не является оптимальным.
Например вы желаете поступить в вуз - А, Б и В, при этом если вы не проходите на бюджет во всех трех, то желаете поступить на платное в вуз Б. С описанной вами системой это сделать можно конечно, только придется еще и приоритеты для платных мест заводить каждому абитуриенту.
Основной фишкой предложенного мой варианта в том, что в этапе 4 у абитуриента есть максимальная полнота информации, а главное, что у всех абитуриентов уже отправлено согласие куда именно он желает поступить, а так как это означает лишь изменение собственного выбора, то маловероятно, что таких людей будет много. Вы правда думаете, что из топового вуз стобальник заберет документы, что бы идти куда-то еще? Если списки публичные, то особо активные могут и проверить куда поступает еще абитуриент №123134, а то и вовсе ссылку ставить, что он выбрал институт такой-то, перейти к списку поступающих. Сам процесс будет более предсказуемым. Я уверен, что 90% абитуриентов даже не будут пользоваться своим правом изменить согласие на поступление, потому что уже на момент дачи согласия (3 этап) можно будет увидеть кто поступает и с какими баллами, потому что новых людей в список поступающих добавить нельзя.
Просто наболело от всяких собак на сене, у которых "все же хорошо, чего ты дергаешься?".
И повторюсь, это статья техническая и цель - обучение разработчиков писать нормальный софт.
Не поймите меня не правильно, но позицию этого человека я не поддерживаю, потому что позиция заключается в "не я такой, жизнь такая". Любой закон - это только бумажка, которую изменить можно, была бы воля это делать. Любая организация - это всего лишь договоренность, которую можно изменить, была бы воля это делать. А ее судя по всему нет, поэтому нам и предлагают постоянно одно и то же блюдо "Ешьчёдали".
Он лишь сообщил, что предложенное мной уже в той или иной степени существует, хотя разница есть и он это указал. А раз оно уже почти такое же, то я вообще не вижу проблем в том, что бы сделать одну федеральную систему. Тем более что архитектура позволяет каждую минуту обновлять состояние для всех вуз страны в виде сгенерированных html, которые как статику можно раздавать еще быстрее. Хотя опять же, финальный вариант решения зависит от специфики, и той информации, что он предоставил - не достаточно для этого.
Государство так не работает, потому что кому-то нужно именно так, как оно сейчас есть - свисток для жопы.
Человек вам пытался объяснить, что есть решения грамотные, а есть не грамотные.
А что касается статьи, она для разработчиков, а не чиновников. Цель - обучение разработчиков писать нормальный софт, исправлять бедлам в головах "блатных" чиновников я не собираюсь.
Скорее КНР для своих 100 млн абитуриентов сделает подобную платформу, чем в РФ что-то сделают хотя бы на троечку, потому что за последние 30 лет как-то в среднем даже неуд ставить сложно.
А законы, они меняются. Иногда сразу все. Учите историю. Все дальнейшие комментарии по поводу законодательства и нытья по поводу особенностей национальной юриспруденции буду удалять.
Статья техническая, если у вас есть вопросы технического характера задавайте, иначе валите в свои... кабинеты.
Чиновник не проблемы решает, он бюджет осваивает!
Отправлять данные, которые заведомо не используются клиентом - это либо огромный косяк архитектора проекта, который такое захотел, либо косяк программиста, который поленился скрывать данные или выдает напрямую объект, например из БД, простая прокси бы полностью решила проблему;
Персональные данные отправлять без необходимости - не самая лучшая затея, потому что можно довольно легко организовать канал утечки, с последующим иском банку на пару млн рублей каждому пострадавшему ( Это не призыв, а лишь констатация факта того, что данные могут быть украдены );
HTTPS не дает 100% защиту, украсть данные можно внутри их сети, потому что там они так же передаются. По хорошему персональные данные без явного запроса клиента (хотя зачем они ему?) никуда не должны уходить с сервера, где они храняться;
При создании защищенных сетей не бывает такого понятия как "ну и что", вы обязаны ЛЮБЫЕ факторы взлома или утечки данных пресекать на корню. Если этого не делается, значит служба безопасности Раффайзена не работает вообще, хотя возможно, что их дурят, но тогда это вопрос об их компетентности.
На месте руководства Раффайзена стоило бы принять меры.
Молитесь, кайтесь, питайтесь солнцем и надейтесь на доброго царя.
PS Это так не работает и вы должны были бы это знать как руководитель.
https://mvnrepository.com/artifact/org.ow2.asm/asm-tree
Не курьеры, а коммивояжеры.
Если ты преступник (например наркоторговец), то для тебя очень выгодно, что можно безопасно передать деньги в другую страну.
Банковским переводом не удается почему-то это сделать, а перевезти несколько чемоданов — на таможке тормознут.
Никто не сравнится с программистом, угрожающим проверять свои коммиты, перед тем как делать PR!
Тем не менее в режиме SLL со сверточной оптимизацией — творит чудеса =)