BugzillaORM

Версия от 00:48, 8 сентября 2009; VitaliyFilippov (обсуждение | вклад) (Новая: Здесь, наверное, будет статья, в которой я постараюсь выразить свои мысли по поводу ORM, обычного взгляд...)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Версия от 00:48, 8 сентября 2009; VitaliyFilippov (обсуждение | вклад) (Новая: Здесь, наверное, будет статья, в которой я постараюсь выразить свои мысли по поводу ORM, обычного взгляд...)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)

Здесь, наверное, будет статья, в которой я постараюсь выразить свои мысли по поводу ORM, обычного взгляда на вещи и необычного взгляда на вещи.

А пока что это сборище идей.

Пример: http://rutube.ru/tracks/793494.html - доклад с YAPC::Russia. Автор Егор Шиповалов, название Применение ORM в Perl.

Первый же слайд ясно даёт понять проблемы, обычно решаемые с помощью объектно-реляционных мапперов:

  • Дублирование кода работы с БД.
  • Трудоёмкость адаптации кода под изменения схемы и различные СУБД.
  • Необходимость знания устройства и работы с БД всеми программистами команды.

Строго говоря, всё это «lurkmore:4.2». Тривиальный путь решения всех трёх проблем: код работы с БД для каждого «компонента» программы выносится в отдельный класс и разбивается на отдельные процедуры. При грамотном разбиении кода работы с БД на отдельные процедуры он получается достаточно компактным, а если не компактным, то по меньшей мере простым и очевидным. Весь код работы с БД таким образом становится сконцентрирован в одном месте, и переписывать под различные СУБД его становится гораздо проще. И уж конечно, имея код работы с БД в отдельном классе, неспециалисты по БД могут и не заниматься работой с ней.

Есть и сложный путь — использование языка запросов типа LINQ или Funq. Ради решения этих трёх проблем они и был задуманы.

Тем не менее, ORM'а всё равно хочется. Даже Bugzilla имеет своё подобие ORM’а. Почему?

Do you want to try some new features? By joining the beta, you will get access to experimental features, at the risk of encountering bugs and issues.

Ок Нет, спасибо