Size: a a a

Архитектура ИТ-решений

2021 July 05

IB

Igor Bespalchuk in Архитектура ИТ-решений
ORM - это все же не про миграции. Притянуто за уши.
Давайте скажем "при разработке с применением SCRUM миграции не прошли и данные пропали, опасайтесь SCRUM"
источник

p

pragus in Архитектура ИТ-решений
А что за ОС?
источник

p

pragus in Архитектура ИТ-решений
какой-нибудь CompCert ?
источник

AL

Alexander Luchkov in Архитектура ИТ-решений
Эмм, а управление объектной моделью это не про ORM?
источник

AL

Alexander Luchkov in Архитектура ИТ-решений
Миграции - это инструмент управления обьектной моделью в хранилище. Почему вы считаете, что это настолько слабо связано?
источник

AL

Alexander Luchkov in Архитектура ИТ-решений
Я к тому, что как говорит @dphil это про особенности процесса разработки, когда один и тот же джавист, пыхер или питонист пишет и ORM обращения, и миграции и ещё там что-то рядом делать пытается.
источник

IB

Igor Bespalchuk in Архитектура ИТ-решений
> Но я все равно не понимаю, зачем может быть нужен ORM.
Это лишний текущий слой абстракций, который в некоторых простых случаях уменьшает затраты из и так не ресурсоемкой части разработки, но добавляет кучу проблем.

Чем объемнее структуры данных (не хочется говорить "сложнее", т.к. со сложными ORM не справляются), и чем больше разнообразных операций над ними, особенно выборок, и чем более "рядовые" разработчики у вас, тем ORM выгоднее. Прикладной код становится значительно компактнее, boilerplate исчезает, масса ошибок исключается на этапе компиляции, легко добавляются и инкапсулируются общие схемы хранения сложных значений, запросы при этом часто вполне приемлемы по качеству, скорость разработки вырастает, гладко работают рефакторинги в IDE, абстракция хранения протекает несильно, надзор над SQL нужен не очень большой.
источник

PD

Phil Delgyado in Архитектура ИТ-решений
Смотри, у тебя ORM реально мешает миграциям, так как зависит или от модели БД (одной) или вообще кодогенерация по базе.
И поэтому процессы миграции БД сильно завязаны на работу с ORM и сильно ей ограничены и, обычно, сделаны в ORMе очень фигово.

На чистом SQL оно попроще )
источник

П

Пух in Архитектура ИТ-решений
А в каком мире без орм теряется привязка к бд?
источник

AL

Alexander Luchkov in Архитектура ИТ-решений
Похоже пора доклад делать...
источник

IB

Igor Bespalchuk in Архитектура ИТ-решений
Не понимаю. Миграция не может мешать ORM в принципе (и наоборот), т.к. ORM - это часть дизайна функционирования, а миграция - это дизайн перехода с версии на версию. Они ортогональны в определенном смысле. Если ты смог перейти от дизайна 1 с ОРМ к дизайну 2 с ОРМ - если смог! - то как уже может что-то помещать ОРМ работать в дизайне 2???
источник

AL

Alexander Luchkov in Архитектура ИТ-решений
Типичные ошибки применения ORM фреймворков.
источник

PD

Phil Delgyado in Архитектура ИТ-решений
Хм, вот тут много вопросов.
1) Почему код становится компактнее? Добавляется куча кода на ORM, который совсем не компактнее SQL
2) Какой бойлерплейт исчезает? Скорее добавляется куча дополнительной фигни вылезает и дополнительных сложностей. Абстракция то протекает постоянно.
3) Компиляция тут не при чем, так как все равно есть зависимость кода от БД и ничего не изменится.
4)  Скорость разработки обычно падает, так как добавляется борьба с ОРМом и его ошибками/неожиданностями.
5) Рефакторинги вообще приходится делать руками, так как правки в коде не связаны с БД и приводят к проблемам с миграцией.

Т.е. все ровно наоборот, сложность вырастает, а толку - нет.
источник

DS

Denis Seleznev in Архитектура ИТ-решений
> На чистом SQL оно попроще )

это у вас ORM нормального не было
источник

PD

Phil Delgyado in Архитектура ИТ-решений
У меня всякие были. А нормальный - это какой?
источник

PD

Phil Delgyado in Архитектура ИТ-решений
(Вообще, по моему опыту, для реальных задач лучше всего подход с json-полями и сериализацией. Там все и просто и эффективно выходит. Но это уже отдельная тема).
источник

DS

Denis Seleznev in Архитектура ИТ-решений
который не мешает работать - раз
который позволит выполнить произвольный код на SQL - два
который позволит выполнить произвольный код на другом языке, сходить во внешний сервис за свежими данными и т.п. - три
источник

PD

Phil Delgyado in Архитектура ИТ-решений
Но вообще работа с БД обычно где-то 1% от трудозатрат (3-5%, если с миграциями и требованиями выкладки без останова на распределенной системе). Там ORM вообще нефига не экономит.
источник

AL

Alexander Luchkov in Архитектура ИТ-решений
Мне кажется что тут описан прокси к sql базе)
источник

PD

Phil Delgyado in Архитектура ИТ-решений
Пример конкретного решения есть?
И что значит "произвольный код на другом языке", при чем тут ORM?
источник