Сила ORM полягає в тому, що він дозволяє моделювати поведінку додатків, використовуючи об'єктно-орієнтовані методи. У ретельно сконструйованому світі у вас є один шар програми, де мова бізнесу чітко відповідає мові команди розробників. ORM - це умова, якщо ORM використовується розумно.
Слабка слабкість полягає в тому, що кількість людей, які насправді насправді отримують об'єктно-орієнтоване програмування, досить невелика. Дуже багато людей пишуть спагетті та фрикадельки, із сильно зв'язаними об'єктами, які мають мало власної поведінки, а насправді поведінка опиняється в огидних 8000-рядкових класах "Сервіс" та "Менеджер", і цей код часто настільки заплутаний, що всі бояться змінити його, оскільки вони не можуть зрозуміти, які будуть побічні ефекти.
Крім того, багато людей насправді не отримують реляційну модель. ORM не допоможе їх отримати, і це не допоможе їм, абстрагувавши реляційну модель. Це просто дозволяє зосередити увагу на доменному шарі на початку та отримати це право, перш ніж ви почнете занадто турбуватися про дизайн бази даних. Якщо це добре застосовано, за допомогою розумних інструментів міграції схем і ORM можуть допомогти вам запобігти накопиченню боргу з коду.
Я створив додатки, в яких ORM зберігав код програми простим, читабельним та перевіреним та мав розумні показники. Я також підтримував додатки, коли зразок був неправомірно використаний і код був складним, нестабільним, повільним та крихким; виявляється, що сам ORM мало з цим стосунок, за винятком того, що замість того, щоб писати поганий код, який погано моделював домен програми, застаріла інженерна команда написала поганий код, який погано моделював домен додатка І поганий код рівня обслуговування, який нехтував усіма значення, яке може надати їм ORM.
ORM не зробить вас розумнішими, але в руках правильного розробника, це може призвести до отримання більш корисного та якісного коду.