Антипаттерн orisnull: коварство иллюзорной простоты

День 4 /  / Зал 3  /  RU /

Есть мнение, что фреймворки наподобие Hibernate и Spring Data создают абстрацию над базой данных, которая сразу из коробки работает идеально. Но идеально не работают даже сами базы данных. Даже когда между ними и приложением нет ничего, кроме SQL.

Например, в случае необходимости получить данные из базы по динамическому фильтру часто пишут запросы вида : where user.name = :name or :name is null. Из-за комбинации удобства и неочевидности сколько проблем с производительностью это удобство создает, запросы такого вида спонтанно «самозарождаются» в любом проекте и продолжают появляться там, даже когда эти запросы пару раз положили на прод.

О таких запросах и о том, как кодогенерация помогает свести ущерб от них к минимуму, мы и поговорим.


Спикер(ы)

Федор Сазонов
Федор Сазонов
Сбер

Руководитель направления java-разработки. За свою карьеру работал как над простым бэкендом для веб-страниц так и над высоконагруженными серверами для онлайновых многопользовательских мобильных шутеров. Глубоко проникся этой темой и теперь консультирует по созданию игровых решений.

Работал в нескольких стартапах, где принимал активное участие в выстраивании процессов разработки и доставки продукта до конечных пользователей.

Также участвует в образовательных проектах SkyPro по обучению java-разработчиков.

Илья Сазонов
Илья Сазонов
Всегда.Да

Разработчик. Большую часть своей карьеры занимается бэкендом, но успел также зацепить патентные исследования и даже ненадолго занырнуть в геймдев. Интересуется вопросами организации кода в стремительно развивающихся проектах с большим количеством участников. В текущий момент работает в финтехе — руководит бэкенд-разработкой в сервисе рассрочек Всегда.Да.