BugzillaORM — различия между версиями
(Новая: Здесь, наверное, будет статья, в которой я постараюсь выразить свои мысли по поводу ORM, обычного взгляд...) |
|||
Строка 11: | Строка 11: | ||
* Необходимость знания устройства и работы с БД всеми программистами команды. | * Необходимость знания устройства и работы с БД всеми программистами команды. | ||
− | Строго говоря, всё это «[[lurkmore:4.2]]». Тривиальный путь решения всех трёх проблем: код работы с БД для каждого «компонента» программы выносится в отдельный класс и разбивается на отдельные процедуры. При грамотном разбиении кода работы с БД на отдельные процедуры он получается достаточно компактным, а если не компактным, то по меньшей мере простым и очевидным. Весь код работы с БД таким образом становится сконцентрирован в одном месте, и переписывать под различные СУБД его становится гораздо проще. И уж конечно, имея код работы с БД в отдельном классе, неспециалисты по БД могут и не заниматься работой с ней. | + | Строго говоря, всё это «[[lurkmore:4.2|4ёрта.с.2]]». Тривиальный путь решения всех трёх проблем: код работы с БД для каждого «компонента» программы выносится в отдельный класс и разбивается на отдельные процедуры. При грамотном разбиении кода работы с БД на отдельные процедуры он получается достаточно компактным, а если не компактным, то по меньшей мере простым и очевидным. Весь код работы с БД таким образом становится сконцентрирован в одном месте, и переписывать под различные СУБД его становится гораздо проще. И уж конечно, имея код работы с БД в отдельном классе, неспециалисты по БД могут и не заниматься работой с ней. |
Есть и сложный путь — использование языка запросов типа [[rupedia:Language_Integrated_Query|LINQ]] или [[Funq]]. Ради решения этих трёх проблем они и был задуманы. | Есть и сложный путь — использование языка запросов типа [[rupedia:Language_Integrated_Query|LINQ]] или [[Funq]]. Ради решения этих трёх проблем они и был задуманы. |
Версия 01:08, 8 сентября 2009
Здесь, наверное, будет статья, в которой я постараюсь выразить свои мысли по поводу ORM, обычного взгляда на вещи и необычного взгляда на вещи.
А пока что это сборище идей.
Пример: http://rutube.ru/tracks/793494.html - доклад с YAPC::Russia. Автор Егор Шиповалов, название Применение ORM в Perl.
Первый же слайд ясно даёт понять проблемы, обычно решаемые с помощью объектно-реляционных мапперов:
- Дублирование кода работы с БД.
- Трудоёмкость адаптации кода под изменения схемы и различные СУБД.
- Необходимость знания устройства и работы с БД всеми программистами команды.
Строго говоря, всё это «4ёрта.с.2». Тривиальный путь решения всех трёх проблем: код работы с БД для каждого «компонента» программы выносится в отдельный класс и разбивается на отдельные процедуры. При грамотном разбиении кода работы с БД на отдельные процедуры он получается достаточно компактным, а если не компактным, то по меньшей мере простым и очевидным. Весь код работы с БД таким образом становится сконцентрирован в одном месте, и переписывать под различные СУБД его становится гораздо проще. И уж конечно, имея код работы с БД в отдельном классе, неспециалисты по БД могут и не заниматься работой с ней.
Есть и сложный путь — использование языка запросов типа LINQ или Funq. Ради решения этих трёх проблем они и был задуманы.
Тем не менее, ORM'а всё равно хочется. Даже Bugzilla имеет своё подобие ORM’а. Почему?