Это действительно зависит от ситуации.
Я перешел из компании, которая использовала оптимизированный ORM, в компанию, которая не использовала ORM и постоянно писала SQL-запросы. Когда я спросил об использовании ORM для упрощения кода, у меня появилось пустое выражение лица, за которым следовали все его недостатки:
- Его высокий блат
- у вас нет точного контроля над вашими запросами и вы выполняете ненужные
- есть отображение тяжелого объекта в таблицу
- это не сухой код, потому что вы должны повторить себя
вкл на
Ну, проработав там несколько недель, я заметил, что:
- у нас было несколько запросов, которые были почти идентичны, и много раз, если бы была ошибка, только несколько было бы исправлено
- вместо того, чтобы кэшировать запросы к общим таблицам, мы будем читать таблицу несколько раз.
- Мы повторяли себя повсюду
- У нас было несколько уровней квалификации, поэтому некоторые запросы не были написаны наиболее эффективно.
После того, как я указал большую часть этого, они написали «DBO», потому что не хотели называть это ORM. Они решили написать один с нуля, а не настраивать один.
Кроме того, многие аргументы происходят из-за невежества в отношении ORM, которое я чувствую. Каждый ORM, который я видел, учитывает пользовательские запросы, и даже следуя соглашениям ORM, вы можете писать очень сложные и подробные запросы, и обычно они более удобочитаемы. Кроме того, они, как правило, очень СУХОЕ, Вы даете им свою схему, а они вычисляют все остальное, вплоть до отображения отношений.
Современные ORM имеют множество инструментов, которые могут вам помочь, например, скрипты миграции, несколько типов БД, к которым обращаются одни и те же объекты, чтобы вы могли использовать преимущества как NOSQL, так и БД SQL. Но вы должны выбрать правильный ORM для вашего проекта, если вы собираетесь его использовать.