tag:blogger.com,1999:blog-8278700074442979782.post1485251649876601992..comments2023-07-12T12:53:44.630+02:00Comments on "Поток сознания" о тестировании и программировании: #1322. Ссылка. Китайский ORM генераторAlex W. Lulinhttp://www.blogger.com/profile/08400475846894229767noreply@blogger.comBlogger2125tag:blogger.com,1999:blog-8278700074442979782.post-7925353360698461672016-12-11T07:15:28.117+02:002016-12-11T07:15:28.117+02:00> Сама идея мне нравится, как нибудь распишу по...> Сама идея мне нравится, как нибудь распишу подробнее свое виденее.<br />><br />Обозначьте хотя бы в тезисах.<br /><br />[1] ПМСМ ORM конструктивен для весьма узкого круга задач.<br />Основные его достоинства вижу в следующем:<br />1. Какой-никакой контроль типов. Таблицы отображаются в классы, соответственно, поля таблиц - в поля классов. При работе с полями объектов компилятор помогает с контролем типов.<br />2. В простейших случаях - работа с записью или с её связями (без специфики) SQL ненужен. Связи могут быть представлены в виде списочных свойств в классах/объектах-представлениях таблиц.<br />3. В ряде случаев (но не в данном, как я понял), ORM содержит средства, "упрощающие" создание простых запросов, опять же, не обращаясь к SQL.<br />4. Следствие предыдущих пунктов: минимизация применения SQL, что ведёт к большей независимости от определённого диалекта SQL/СУБД.<br /><br />[2] Минусы ORM (любой) вижу в том, что:<br />1. От SQL ORM полноценно не изолирует. В результате появляется эклектика (SQL и ORM-style запросы), и зависимость от платформы (SQL/СУБД) сохраняется.<br />2. Применение ORM подталкивает к неэффективному использованию СУБД. Запросы далеко не всегда тривиальны. SQL, построенный средствами ORM часто заметно хуже, чем если бы SQL был создан вручную. Это критично для нагруженных приложений.<br />3. "Сахар" (пп.1-4) вполне достижим иными средствами. пп.2-4, например, посредством <a href="https://en.wikipedia.org/wiki/Database_abstraction_layer" rel="nofollow">DAL</a>.<br /><br />Суммируя, конструктивным в ORM вижу только [1].1, но результат его реализации язык не повернётся назвать ORM :-)NameRechttps://www.blogger.com/profile/00070033877714975718noreply@blogger.comtag:blogger.com,1999:blog-8278700074442979782.post-1589968637502914072016-12-10T15:21:37.547+02:002016-12-10T15:21:37.547+02:00Идее уже лет сто.Идее уже лет сто.Alex W. Lulinhttps://www.blogger.com/profile/08400475846894229767noreply@blogger.com