Русскоязычное сообщество Spring-разработчиков.
Habr: bit.ly/433IK46
YouTube: bit.ly/4h3Ci0x
VK: bit.ly/4hF0OG8
Rutube: bit.ly/4b4UeX6
Яндекс Музыка: bit.ly/3EIizWy
Чат для общения: @spring_aio_chat
По вопросам сотрудничества: @befayer
Post #893
8.4K
🔥 ORM снова в огне: почему “Вьетнам индустрии” никуда не делся — и при чём тут Spring Data JDBC
Во время подготовки к Spring Data JDBC Event, эксперт нашего сообщества, Михаил Поливаха, вновь поднял тему, которая болит у индустрии уже больше двух десятилетий. Поводом стала знаменитая статья Джеффа Отвуда (основанная на мыслях Теда Ньюарда) — та самая, где прозвучала фраза
И что самое интересное: в 2025 году она звучит не менее актуально, чем в 2004-м.
Корневая проблема всё та же: объектная модель и реляционная модель — два мира, которые не хотят мириться друг с другом. ORM обещает стать «мостом», но чаще оказывается болотом компромиссов, где всё работает… пока не перестаёт.
В финале Джефф говорит жёстко, но честно: уберите O или уберите R из ORM — и проблема исчезнет.
📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/972316/
Во время подготовки к Spring Data JDBC Event, эксперт нашего сообщества, Михаил Поливаха, вновь поднял тему, которая болит у индустрии уже больше двух десятилетий. Поводом стала знаменитая статья Джеффа Отвуда (основанная на мыслях Теда Ньюарда) — та самая, где прозвучала фраза
«ORM — это Вьетнам нашей индустрии»
И что самое интересное: в 2025 году она звучит не менее актуально, чем в 2004-м.
Корневая проблема всё та же: объектная модель и реляционная модель — два мира, которые не хотят мириться друг с другом. ORM обещает стать «мостом», но чаще оказывается болотом компромиссов, где всё работает… пока не перестаёт.
Джефф перечислил 6 путей, которыми индустрия пыталась сбежать от этого несоответствия:
1. Выбросить объекты. Забить на rich-domain подход и возвращать проекции/tuple’ы. Нет объектов ⇒ нет mismatch’а. Практично, как бы цинично это ни звучало.
2. Перейти к "объектным" хранилищам. OODBMS вроде db4o пытались хранить объекты как есть. Идея жила недолго, но как попытка — эпохальная.
3. Писать маппинг руками. JDBC/JOOQ и полный контроль. Иногда это даже предпочтительнее: больно, но честно.
4. Принять ограничения ORM. Hibernate-путь: 70–80% задач закрываем ORM, остальное — raw SQL. Звучит разумно, если не забывать про кэш и согласованность.
5. Встроить реляционность в язык. LINQ, Scala, F#. Красиво, но массовым это так и не стало.
6. Сделать сами объекты реляционными. RowSet/DataSet-подходы. Интересная идея, но нишевая.
В финале Джефф говорит жёстко, но честно: уберите O или уберите R из ORM — и проблема исчезнет.
📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/972316/
- 🔥 29
- 👍 13
- 🤯 6
- 🤔 4
- 😁 3
- ❤ 2
- ⚡ 1










