Начало основного контента

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

Зал 1
Язык -RU

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

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

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

  • #кодогонерация
  • #codegen
  • #оптимизация_запросов
  • #sql
  • #rdbms

Спикеры

Приглашенные эксперты