JPoint, Joker и JUG ru
JPoint, Joker и JUG ru
  • 1 044
  • 9 309 190
Максим Морев, Газпромбанк.Тех — Код, которого не должно быть: Vertical Slice Architecture в Пузырьке
Ближайшая конференция - Joker 2024, 9 октября (Online), 15-16 октября, Санкт-Петербург
- -
Сейчас много задач по рефакторингу или импортозамещению, разработчики собирают информацию по частям из хранимых процедур, описаний. Поделюсь своим опытом рефакторинга и переосмысления легаси-систем.
Как написал Эрик Эванс в своей книге «Предметно-ориентированное программирование (DDD). Структуризация сложных программных систем»: «Привести в соответствие фактическое поведение, смысловое содержание и внешнюю форму кода - все это требует дисциплины и определенного взгляда на архитектурное проектирование программы».
Как это сделать так, чтобы не сломать существующий код и не толкаться с разработчиками в репозитории, если они будут работать над параллельными процессами? Максим рекомендует использовать следующий набор инструментов: Bubble context, Vertical Slice Architecture, Feature toggles. На примерах спикер делится опытом, как можно улучшить легаси, в котором часто идут доработки.
Доклад будет полезен мидлам и старшим разработчикам.
Скачать презентацию с сайта JPoint - jrg.su/UWqbBr
zhlédnutí: 2 061

Video

Владимир Хростицкий, Мир Plat.Form - Cassandra: путь в продакшен
zhlédnutí 1,2KPřed 14 dny
Ближайшая конференция - Joker 2024, 9 октября (Online), 15-16 октября, Санкт-Петербург - - Современная разработка располагает богатым набором инструментов и технологий для решения тех или иных задач. В основном используются популярные и хорошо зарекомендовавшие себя продукты. Но иногда сложные задачи требуют применения новых, не совсем привычных технологических решений. Задача распределенного х...
Николай Комраков и Илья Смирнов, Гринатом - Интеграционная шина вместо SAP - при чем тут Java
zhlédnutí 673Před 14 dny
Ближайшая конференция - Joker 2024, 9 октября (Online), 15-16 октября, Санкт-Петербург - - Как пришли к необходимости внедрения ESB-системы, а потом к ее импортозамещению (спойлер - уход SAP). Как сделали из open source отраслевое решение: оптимизация настройки потоков с помощью low-code решения, снижение стоимости интеграций; бесшовность - за счет готовности конвертеров шины SAP; аспекты безоп...
Сергей Синдеев, Группа «Рексофт» - Hibernate, OOM и ооочень длинные запросы
zhlédnutí 2,3KPřed 14 dny
Ближайшая конференция - Joker 2024, 9 октября (Online), 15-16 октября, Санкт-Петербург - - Как бы мы ни хотели, утечки памяти иногда случаются. Рассматриваем, что же такое OOM, как искать его причину и чем могут помочь средства логирования и мониторинга такими средствами, как Kibana и Grafana. Получаем дамп с помощью Spring Actuator и VisualVM. Затем проводим анализ с помощью Eclipse MAT и Inte...
Александр Дроздов, Axiom JDK - Убираем мусор без следов
zhlédnutí 594Před 14 dny
Ближайшая конференция - Joker 2024, 9 октября (Online), 15-16 октября, Санкт-Петербург - - Доклады о сборщиках мусора звучат на Java-конференциях уже более 10 лет. За это время наши коллеги успели рассказать и о способах настройки сборщиков мусора, и о технологиях, которые в них реализованы. Однако в настоящее время появились новые проблемы, требующие решения при выборе конфигурации Java. Техно...
Александр Козлов и Максим Чудновский, СберТех - Java в Service Mesh: Service Discovery для Istio
zhlédnutí 735Před 14 dny
Ближайшая конференция - Joker 2024, 9 октября (Online), 15-16 октября, Санкт-Петербург - - Многие из нас, кто сталкивался с микросервисной архитектурой, знают, что одних маленьких сервисов недостаточно. Необходимо обеспечить их надежной средой обитания и информацией о местах расположения остальных сервисов. В докладе рассматриваем, как это можно сделать, если обычных средств обнаружения сервисо...
Открытие офлайн-части JPoint 2024
zhlédnutí 452Před 21 dnem
Ближайшая конференция - Joker 2024, 9 октября (Online), 15-16 октября, Санкт-Петербург - - Говорим о расписании, сессиях и делимся информацией. Ведущие: Александр Нозик, Алексей Федоров.
Алексей Чернявский, Платформа Сфера - Как выжать все соки из Jenkins
zhlédnutí 1,6KPřed měsícem
Ближайшая конференция - Joker 2024, 9 октября (Online), 15-16 октября, Санкт-Петербург - - Спикер рассказывает, как построить CI/CD-продукт, перед которым стоит задача выдерживать 160000 сборок в сутки. В качестве базового продукта Алексей с командой взяли Jenkins с его преимуществами и недостатками. Провели анализ основных узких мест производительности в Jenkins и с головой окунулись в их реше...
Александр Казанцев, hh.ru - Scylla vs Cassandra = ?
zhlédnutí 1,7KPřed měsícem
Ближайшая конференция - Joker 2024, 9 октября (Online), 15-16 октября, Санкт-Петербург - - На многих проектах используются key-value хранилища, и hh.ru - не исключение. Однажды команда поняла, что Cassandra больше не укладывается в желанные миллисекунды. Попытались поднастроить, покрутить, но чуда не произошло. Попробовали альтернативные варианты и остановились на Scylla. Из доклада узнаем, как...
Никита Шубин, X5 Tech - Проблемы маленьких приложений при увеличении нагрузки по данным
zhlédnutí 1,2KPřed měsícem
Ближайшая конференция - Joker 2024, 9 октября (Online), 15-16 октября, Санкт-Петербург - - Эволюция приходит в большинство систем. Хорошо, если заранее подготовились к большой пользовательской нагрузке и соответствующему количеству данных: были собраны нефункциональные требования, создано архитектурное решение, проводился контроль над разработкой. Но часто бывают ситуации, когда система изначал...
Андрей Зарубин, Росбанк - Между прожаркой и карго-культом
zhlédnutí 816Před měsícem
Ближайшая конференция - Joker 2024, 9 октября (Online), 15-16 октября, Санкт-Петербург - - Спикер раскрывает необходимость процесса код-ревью, ловушки, в которые можно попасть при неправильной реализации, и специфику код-ревью в проектах на Java. Посмотрим на доступные всем инструменты, практики и их комбинации. Каждый найдет для себя то, что можно привнести в свой процесс код-ревью, чтобы улуч...
Андрей Околелов, РСХБ-Интех - Средство генерации SQL-запроса для упрощения задач по тестированию
zhlédnutí 799Před měsícem
Ближайшая конференция - Joker 2024, 9 октября (Online), 15-16 октября, Санкт-Петербург - - SQL-запрос написать просто, когда это обычный Select, но как становится сложно, когда критериев очень много, а вариативности еще больше! А если еще добавить команду разработчиков со своими тараканами, то процесс становится очень трудным. Спикер рассказывает о том, как внимание к деталям и смена фокуса: от...
Антон Ромза, ITFB Group - Работа с jsonb, массивами и комплексными типами PostgreSQL для JPA
zhlédnutí 2,2KPřed měsícem
Ближайшая конференция - Joker 2024, 9 октября (Online), 15-16 октября, Санкт-Петербург - - Один из важных моментов проектирования и разработки приложения - это дизайн хранения данных в БД. Зачастую сущности представлены полями базовых типов и имеют одномерную структуру. В докладе будут представлены шаблоны и паттерны использования нетривиальных типов данных PostgreSQL, которые помогут оптимизир...
Обсуждение от Сбера - Польза и вред Java-сообществ для инженеров
zhlédnutí 1KPřed měsícem
Ближайшая конференция - Joker 2024, 9 октября (Online), 15-16 октября, Санкт-Петербург - - Эксперты из разных сфер делятся опытом. Говорим о том, как возникают сообщества, какие есть риски и чем сообщества полезны инженерам и компании. Обсуждаем роли и как начать проявляться. Спикеры: - Николай Шипяков, Тинькофф. - Арина Штерн, Сбер. - Денис Родин, Сбер. - Петр Белкин, Сбер. - Семен Киреков, МТ...
Закрытие конференции Joker 2023
zhlédnutí 277Před měsícem
Ближайшая конференция - Joker 2024, 9 октября (Online), 15-16 октября, Санкт-Петербург - - Подводим итоги конференции, вспоминаем яркие моменты и рассказываем о дальнейших планах. Ведущие: Алексей Стукалов, Алексей Федоров.
Станислав Страупе - Квантовые вычисления: основные идеи и современное состояние технологии
zhlédnutí 1,7KPřed měsícem
Станислав Страупе - Квантовые вычисления: основные идеи и современное состояние технологии
Владимир Красильщик - The show must go on: нагрузка и оптимизация онлайн-конференции
zhlédnutí 535Před měsícem
Владимир Красильщик - The show must go on: нагрузка и оптимизация онлайн-конференции
Евгений Ненахов - Потоковая обработка с Kafka в условиях Big Data
zhlédnutí 2,5KPřed měsícem
Евгений Ненахов - Потоковая обработка с Kafka в условиях Big Data
Александр Нозик - Карты, схемы и Compose
zhlédnutí 738Před měsícem
Александр Нозик - Карты, схемы и Compose
Антон Котов - Reactive для CRUD: фантазии и реальность
zhlédnutí 3,2KPřed měsícem
Антон Котов - Reactive для CRUD: фантазии и реальность
Дмитрий Стогов - IR JIT Framework: база для следующего поколения JIT в PHP
zhlédnutí 326Před měsícem
Дмитрий Стогов - IR JIT Framework: база для следующего поколения JIT в PHP
Александра Волушкова - OpenAPI и как его можно применить для Kafka
zhlédnutí 729Před měsícem
Александра Волушкова - OpenAPI и как его можно применить для Kafka
Павел Кислов - Spring Security: повседневное и неочевидное
zhlédnutí 3,1KPřed měsícem
Павел Кислов - Spring Security: повседневное и неочевидное
Александр Козлов, Максим Чудновский - Правда ли, что Dubbo - это как gRPC, но из Китая?
zhlédnutí 267Před měsícem
Александр Козлов, Максим Чудновский - Правда ли, что Dubbo - это как gRPC, но из Китая?
Денис Габайдулин - Индексация в поисковой платформе Ozon
zhlédnutí 652Před měsícem
Денис Габайдулин - Индексация в поисковой платформе Ozon
Игорь Исаев - Запредельный язык: нелитературный русский, акустика речи и фонетика рэпа
zhlédnutí 303Před měsícem
Игорь Исаев - Запредельный язык: нелитературный русский, акустика речи и фонетика рэпа
Александр Пащенко - С SQL на Cassandra
zhlédnutí 587Před měsícem
Александр Пащенко - С SQL на Cassandra
Андрей Зубков - Утилита стратегического мониторинга PostgreSQL - pg_profile
zhlédnutí 408Před měsícem
Андрей Зубков - Утилита стратегического мониторинга PostgreSQL - pg_profile
Дмитрий Некрылов - Отказоустойчивый конечный автомат на Java и SQL
zhlédnutí 693Před měsícem
Дмитрий Некрылов - Отказоустойчивый конечный автомат на Java и SQL
Сергей Васильев - Как обработка XML приводит к проблемам с безопасностью? Разбираемся с XXE
zhlédnutí 314Před měsícem
Сергей Васильев - Как обработка XML приводит к проблемам с безопасностью? Разбираемся с XXE

Komentáře

  • @user-gk3ep5mq9r
    @user-gk3ep5mq9r Před 20 hodinami

    GTD + инфа из TED

  • @Denis-Orlov
    @Denis-Orlov Před 23 hodinami

    Евгений Борисов - это и научпоп, и камеди-клаб и настоящий детектив!

  • @user-md3xy2kc5l
    @user-md3xy2kc5l Před dnem

    Хороший доклад и интересная подача материала. Жалко, что судя по всему проект на гитхабе заморожен и дальнейшего развития инструмент не получил.

  • @antonkuranov
    @antonkuranov Před 2 dny

    По опцию -XX:MaxRAMPercentage ничего не было сказано, хотя это тот ещё геморрой. Ограничение контейнера на память не то же самое, что ограничение JVM. Поэтому если джава куснет чуток лишнего, то контейнер тихо сдохнет с OOK. А эта опция позволяет иметь запас, который в моем случае должен быть не выше 70%.

  • @ConstAxe
    @ConstAxe Před 2 dny

    Янки молодцы: умышленно делают закладки в компиляторах, чтобы "пылесосить" лучшие решения и кретические данные со всех стран планеты🙃 А Егор серьёзно считал это недороботкой для программистов😁

  • @artemiypyatakov5438

    Мне кажется, что единственный полезный поинт это "не создавать интерфейсы на каждый чих". В остальном разговоры ни о чем, голые концепции без демонстрации практических примеров.

  • @pel19731204
    @pel19731204 Před 4 dny

    Круто! Полезно ознакомиться изучающим Spring. Автору - респект.

  • @TimurSevimli
    @TimurSevimli Před 4 dny

    На счет static методами я не согласен. Кажется что идея о том что, статические методы нарушают OOP это не правильно. Я понимаю что автор питается донести но почему он не учитывает что я могу вернут из статического метода, сам класс (this) ?. Вот пример из реального жизни, вместо того что бы делать асинхронные конструкторы, лучше подходят и красивее выглядит асинхронные методы. Но мы не можем инициализировать класс через его методы, так как класс пока не инициализирован, его методы тоже не доступны. Но можем вызывать статический метод что бы инициализировать класс, а этот статический метод можем сделать асинхронный. const file = await File.createAsync(options: fileOptions); Теперь я могу инициализировать класс File асинхронным образом что бы он не блокировал поток со своими системными вызовами пока происходили вовремя инициализации класса.

  • @andrew_chumakov
    @andrew_chumakov Před 4 dny

    Ахаха, ну джава-лешие, ну шутники 😂

  • @user-sy9rn6tu1b
    @user-sy9rn6tu1b Před 4 dny

    шедевр искусства

  • @dothings6646
    @dothings6646 Před 5 dny

    Joker как всегда хорош

  • @user-wu8wi7hb2e
    @user-wu8wi7hb2e Před 5 dny

    Есть подозрение, что такой подход может заметно поднять сложность в персистентном слое. Если модели в слайсах будут ссылаться на общее состояние в БД, то придется поддерживать N мапперов. Плюс изобретать отдельные практики по миграциям схемы БД.

  • @viktorperov9020
    @viktorperov9020 Před 6 dny

    Это просто охуенно

  • @VaeV1ct1s
    @VaeV1ct1s Před 6 dny

    А как потом новому в проекте человеку разобраться в этом зоопарке классов?

  • @user-yb7wl6td6g
    @user-yb7wl6td6g Před 6 dny

    Ужас

  • @user-gk2kn3ri7z
    @user-gk2kn3ri7z Před 7 dny

    Многоступенчатые собеседования - это крайне интересный ритуал вхождения в компанию, когда каждый, включая всех директоров, через этот ритуал когда-то проходил, мучился, готовился. Но есть нюанс - большинство высших технических руководителей в компаниях, практикующих подобное, либо вообще не проходят многоступенчатые собеседования, либо идут по другому треку, где нет языка и архитектуры, только менеджмент.

  • @user-mj6tf8dc1d
    @user-mj6tf8dc1d Před 7 dny

    Еретик

  • @TalosDx
    @TalosDx Před 7 dny

    По kjs и jt compose web доки голяк, туториалов практически нет. Особенно как tailwindcss завести в проект (это не сложно). Но большинство новичков, что ещё не выгорели от программирования как раз это и останавливает. А на подобных людях обычно и строится всё коммюнити. Попробую разные варианты запилить, если получится хорошо, попробую в прод затащить. Эта идея мне очень нравится (прям сильно). Хоть и не нравится идея кодить на реакте. Хочу vuejs на kotlin. Хочу VueKt.

  • @enjoyit8499
    @enjoyit8499 Před 8 dny

    Звук просто ужасный :( Ни громкости, ни качества

  • @enjoyit8499
    @enjoyit8499 Před 8 dny

    Спасибо за доклад! Очень неплохо)

  • @Smith-gm7
    @Smith-gm7 Před 9 dny

    Подскажите, проблема с backpressure решилась за 4 года? Неужели без RSocket это не решается? Спасибо!

  • @enjoyit8499
    @enjoyit8499 Před 9 dny

    Доклад хороший, спасибо!

  • @enjoyit8499
    @enjoyit8499 Před 9 dny

    Вот бы по названию доклада было понятно что внутри

  • @sergeiazarov
    @sergeiazarov Před 9 dny

    Следующий шаг - отказ от ООП в пользу процедурного стиля. А там и до go to не далеко.

  • @alexandersorokin1019
    @alexandersorokin1019 Před 10 dny

    Очень похож на Александра Якушева из команды КВН Прима

  • @calinmarian2553
    @calinmarian2553 Před 10 dny

    Thanks, очень хороший доклад.

  • @konstantinchvilyov9602

    throughput [ˈθruːpʊt] пропускная способность, производительность, пропускной

  • @konstantinchvilyov9602

    schedule [ˈʃedjuːl] планировать, намечать, назначить

  • @konstantinchvilyov9602

    generate [ˈʤenəreɪt] порождать, производить, вырабатывать, создавать, породить, [вы]давать

  • @konstantinchvilyov9602

    Задача функции yield - передать значение повторителю и приостановить его до тех пор, пока не будет запрошено следующее значение.

  • @konstantinchvilyov9602

    yield [jiːld] дать, уступить, принести, произвести; урожай, доход, отдача, надой

  • @usalkaz
    @usalkaz Před 11 dny

    Как может быть бедный Hikari при R2DBC, если там используется специальный реактивный пул? То есть автор указал причину бессмысленности реактивного стека из-за HikariCP, хотя сам и не использовал реактивный пул. К тому же данный пул уже автоматически идет со стартером spring-data-reactive

  • @TheElents
    @TheElents Před 11 dny

    Я внимательно прослушала эту лекцию насчёт Hibernate. И всё прекрасно, всё объяснил очень хорошо. Остаётся только один вопрос - а на хрена козе баян???? То есть какая вообще польза от этого Hibernate??? Оказывается, что этот умный помощник очень старается помочь, и очень хорошо помогает, но делает это так, как он хочет. Не так, как хотите вы - а так, как он сам это понимает. То есть вместо того, чтобы тупо писать на Java и SQL, оптимизировать и организовывать код и писать подробные комментарии, вместо этого простого и тупого решения - мы используем передовые технологии, которые все сами сделают за нас. И они делают. Только опять таки, они это делают так, как им хочется. А программисты потом радостно и много работают, пытаясь догадаться, что именно этот прекрасный помощник опять вытворил, следуя своей странной логике.

  • @VasiliyMikhailov
    @VasiliyMikhailov Před 12 dny

    24я минута «Событие знает как себя применить к агрегату». Кажется все должно быть наоборот - Агрегат слушает события и решает что из них к себе применить.

  • @markhunt6499
    @markhunt6499 Před 13 dny

    Уровень "экспертов" впечатляет. За такие доклады кто-то ещё деньги платит?

  • @ixtal23
    @ixtal23 Před 13 dny

    Данный метод гарантирует снижение производительности и не гарантирует отсутствие утечек данных. Есть множество мест, помимо кучи джавы, где эта утечка возможна: многочисленные системные кэши и буферы, оффхип память джавы, память выделяемая нативными методами и тд и тп. Потом есть системный менеджер памяти который может делать с памятью какие угодно оптимизации невидимые jvm. Данная проблема может быть решена только на системном уровне, например тотальным сквозным шифрованием памяти.

  • @OStrekalovsky
    @OStrekalovsky Před 13 dny

    Очень рваная подача материала и очень однобокая точка зрения. Тяжело слушать и неявно появляются вопросики к эксертности докладчика. Представленный подход не про упрощение, он про примитивные проекты, где такие трюки действительно могут ускорить разработку без шанса поломать общие инварианты, например какой нить тупой CRUD.

    • @vaganov_vadim
      @vaganov_vadim Před 8 dny

      Не я докладчик, но вставлю 5 копеек: серебряной пули, как известно, не существует - это лишь один из инструментов решения задачи. Такой подход работает не только для банальных CRUD'ов, но наверняка можно придумать случаи, где такой подход может вызвать больше проблем, чем пользы. Под вот этим czcams.com/video/L2Wnq0ChAIA/video.html видео об архитектуре вертикального среза идут очень интересные обсуждения про репозитории, большие проекты и применимость подходов.

  • @user-pk7qz8nd1u
    @user-pk7qz8nd1u Před 13 dny

    Очень классный доклад, спасибо!

  • @user-md3xy2kc5l
    @user-md3xy2kc5l Před 14 dny

    Вопрос по горизонтальной доработке - очень в тему. Как раз такие "непредвиденные" сценарии очень часто и встречаются на долгоживущих проектах. Т.е. долгое время и бизнес и разработка и аналитики живут в той парадигме, допустим, что сервис может предоставляться только "клиенту банка", а потом приходит новый бизнес со светлой идеей, что можно предоставлять какие-то услуги "не клиентам" и тут же начинаются "чудеса на виражах", как эту доработку воткнуть в существующий ландшафт (уже немаленький и в котором уже нет никого, кто знал бы все процессы от и до) и ничего нигде и ни у кого не сломать. Также не до конца понятно про хранение данных и его оптимизацию. То, что код дублируется - это понятно. Но судя по тому, что и репозитории внутри пакетов дублируются и сущности, то скорее всего и все данные в БД тоже начинают жить в разных таблицах / схемах / базах. Про фиче-тоглы, т.е. про "флажки", тоже очень вскользь пробежались, как будто это тривиальная проблема и никаких подводных камней там не бывает. Хотя на практике зачастую ПО начинает обрастать этими флажками и ветвистым кодом. Старое по какой-то причине не удаляется и оно продолжает жить в этой парадигме и распухает и становится слабо поддерживаемым и слабо тестируемым.

    • @vaganov_vadim
      @vaganov_vadim Před 8 dny

      Вопросы совершенно валидные и злободневные! Каждый из них - тема как минимум для статьи. Про фича-флаги: действительно всё не так тривиально, особенно про их жизненный цикл. Про всё за 15 минут не рассказать, увы. Думаю, что тему как раз можно хорошенько прокачать ответами на ваши вопросы.

  • @57skies
    @57skies Před 14 dny

    this is the reason we stopped using hibernate a long time ago, and just use plain jdbc. Things are much simpler and far more predictable

    • @UniXoiD69
      @UniXoiD69 Před 13 dny

      same, we are using sql with jooq, hibernate is a garbage

  • @57skies
    @57skies Před 14 dny

    instead of MAT, you can use JOL, command line utility that does needs only a fraction of memory to tell you main things about your heapdump. Imagine a dump of 22GB, well you need at least that memory for even open MAT; jol can save you here big time

  • @realyte6861
    @realyte6861 Před 14 dny

    По факту все 30 минут это рассказ о проблеме, а на решение 1 минута. Лучше поподробнее бы рассказали про этот clause parameter padding и какие у него подводные камни. Он по умолчанию выключен и я очень сомневаюсь, что разработчики хибера решили, чтобы каждый сам натолкнулся на OutOfMemory, чтобы его включить

  • @alekseyshibayev5243
    @alekseyshibayev5243 Před 14 dny

    На прошлой работе при IN с uuid больше 1000 штук - постгрес кидал исключение. И мы били на батчи. Вот так как у тебя в примере кода. Правда там postgres pro был, и компетентные дба. Может что-то докрутили. А на другом проекте был оракл. У вас какая тут бд была? - Услышал ответ. Обычный постгрес? А что за ентити вы тянете? Простые из одной таблицы? Upd. Полагаю, дба у вас нет?

    • @user-nl1fi7nx2b
      @user-nl1fi7nx2b Před 5 dny

      На простом постгресе делал батчи по несколько тысяч айдишек в IN. Тут скорее проблема в том, что размер батча изначально пустили на самотёк.

  • @user-md3xy2kc5l
    @user-md3xy2kc5l Před 14 dny

    Про MAT + работу с хипом, конечно, спасибо, но так и осталось за кадром, что это за чудесные такие запросы с 1кк/2кк параметров в условии IN. Нарезка на батчи, конечно, тут спасла в какой-то мере, но может стоит глянуть в саму логику запроса, почему и зачем он вообще такой нужен? Как будто какой-то JOIN применили. На позапрошлом проекте были DBA и они очень люто и нещадно карали, вот за такие вот IN. Даже какая-то инструкция была, на эту тему, что так делать запрещено. Ну, там и монолит до кучи был... и весьма нагруженный.

  • @user-nu6mk8xq2b
    @user-nu6mk8xq2b Před 14 dny

    Прекрасный доклад. Отчитан грамотно

  • @user-md3xy2kc5l
    @user-md3xy2kc5l Před 14 dny

    А есть пример реального применения данного вектора атаки? Очень сомнительно выглядит такая защита памяти, если у злоумышленника есть возможность запускать произвольный код на Си на той же машине. Что ему мешает читать всю память, снимать дампы и делать что угодно ещё?

  • @vladiksun1985
    @vladiksun1985 Před 14 dny

    Да jpoint нынче не тот

  • @anton-tkachenko
    @anton-tkachenko Před 15 dny

    Я не понял, как запрос слали в базу? Без препаред стейтмента? Почему там сто тыщ миллионов параметров, а не один параметр типа лист?

    • @tonytissot9372
      @tonytissot9372 Před 14 dny

      лист в качестве параметра (jpql, hql) в конечном запросе (sql) разбивается отдельным параметром для каждого элемента рассказчику на 32:47 предложили передавать массивом, но он сослался на громоздкую реализацию и допиливание диалекта

    • @anton-tkachenko
      @anton-tkachenko Před 13 dny

      То есть в препаред стейтменте на коннекшене было сто тыщ миллионов аргументов, а не один типа массив?

    • @tonytissot9372
      @tonytissot9372 Před 12 dny

      @@anton-tkachenko ​ да. притом рассказчик посчитал миллион аргументов нормой, а два миллиона уже нарушением логики т.к. данных в бд меньше)

    • @user-md3xy2kc5l
      @user-md3xy2kc5l Před 12 dny

      @@tonytissot9372 кстати, интересно было бы понять, почему там этих значений было больше чем записей в БД, вполне возможно там какое-то декартово произведение случилось, обычно в таких случаях DISTINCT применяют, чтобы от дублей избавляться

  • @Vladimir-pz5eo
    @Vladimir-pz5eo Před 15 dny

    Зачем оптимизировать код если можно масштабировать ресурсы :)

  • @antonkuranov
    @antonkuranov Před 15 dny

    Причина и ваша основная ошибка -- это включенный своп! На серверах он не только бесполезен, но и вреден. Когда и так нагруженное приложение начинает свопится, все встаёт колом без возможности что-либо разобрать. А вот без свопа Линукс бы быстро прибил сервис по причине OOM и написал бы об этом в syslog, что сразу бы положило конец вашей эпопее.