Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 12 лет назад пользователемblog.index-art.ru
1 Доклад «ORM: благо или зло?» Автор Горшков Сергей Вадимович
2 Что такое ORM? ORM (Object-relational mapping) - технология программирования, которая связывает базы данных с концепциями объектно- ориентированных языков программирования. Автор Горшков Сергей Вадимович доклад «ORM: зло или благо?»
3 Что такое ORM? Автор Горшков Сергей Вадимович доклад «ORM: благо или зло?» Нет ORMЕсть ORM Приложение База данных Приложение База данных ORM
4 Что такое ORM? Автор Горшков Сергей Вадимович доклад «ORM: зло или благо?» Нет ORM Есть ORM INSERT INTO clients SET name=Альфа; $client = new Client (); $client->setName (Альфа); $client->persist (); $client = new Client (); $client->name = Альфа; $client->Save ();
5 Сократить семантический провал между объектной и реляционной формой хранения данных. Повысить скорость и снизить трудоемкость работы программиста (требуется меньше кода, который проще отлаживать). Код, использующий ORM, меньше подвержен ошибкам. Зачем нужны ORM? Автор Горшков Сергей Вадимович доклад «ORM: благо или зло?»
6 Для тестов будем использовать Doctrine 2 (из Symfony) Автор Горшков Сергей Вадимович Одна из наиболее современных и мощных ORM, доступных для связки PHP / MySQL. Содержит класс QueryBuilder, позволяющий конструировать запросы. Также реализует собственный диалект SQL под названием DQL, в котором вместо таблиц и полей используются объекты и их свойства. доклад «ORM: зло или благо?»
7 Семантический провал Автор Горшков Сергей Вадимович доклад «ORM: благо или зло?» Мир объектов Мир реляционной базы данных TABLE Clientclass Client $client = new Client (); $client->setName (Альфа); $client->persist ();
8 Не всегда можно однозначно сопоставить класс и объект БД (например, в случае таблиц-связок нет нужды плодить отдельный объект для каждой связи). Возражения? Автор Горшков Сергей Вадимович доклад «ORM: зло или благо?» Не представляя себе реальной структуры БД, программисту будет крайне сложно работать с базой рационально, и оптимизировать скорость работы. Абстрагируясь от базы, мы практически исключаем возможность использования ее «продвинутых» средств, таких как хранимые процедуры, представления, триггеры.
9 Снизить трудозатраты программиста Автор Горшков Сергей Вадимович доклад «ORM: благо или зло?» $client = new Client (); $client->setName (Альфа); $client->persist (); $s=INSERT INTO clients SET name=Альфа; mysql_query ($s, $connid);
10 Возражения? Автор Горшков Сергей Вадимович доклад «ORM: зло или благо?»
11 Возражения? Автор Горшков Сергей Вадимович доклад «ORM: благо или зло?» Ускорение работы программиста обычно приводит к замедлению работы продукта, что в конечном счете, с точки зрения экономики, окажется гораздо менее рационально. Все случаи обращения к БД в сколько-нибудь сложном проекте все равно не охватываются стандартными возможностями ORM. В таких случаях применяются «костыли», которые, в конечном счете, замедляют работу программиста.
12 Снизить число ошибок Автор Горшков Сергей Вадимович доклад «ORM: зло или благо?»
13 Скорость: тестовый случай Автор Горшков Сергей Вадимович доклад «ORM: благо или зло?» ПродажиКлиентыТовары Продажи – Товары Задача – построить таблицу вида: Дата продажи Клиент Сумма Альфа 1000
14 Doctrine Query Builder Автор Горшков Сергей Вадимович доклад «ORM: зло или благо?»
15 DQL Автор Горшков Сергей Вадимович доклад «ORM: благо или зло?»
16 Прямой запрос из Doctrine Автор Горшков Сергей Вадимович доклад «ORM: зло или благо?»
17 Прямой запрос из PHP: подзапрос Автор Горшков Сергей Вадимович доклад «ORM: зло или благо?»
18 Прямой запрос из PHP: JOIN Автор Горшков Сергей Вадимович доклад «ORM: благо или зло?»
19 Кэширование суммы в sales Автор Горшков Сергей Вадимович доклад «ORM: зло или благо?»
20 И какие же результаты? Автор Горшков Сергей Вадимович доклад «ORM: благо или зло?» Способ извлечения Время, сек. Doctrine Query Builder 9.14 DQL 7.35 Прямой запрос из Doctrine *
21 И какие же результаты? Автор Горшков Сергей Вадимович доклад «ORM: благо или зло?» Способ извлечения Время, сек. Запрос с подзапросами из PHP 2.18 Запрос из PHP с JOIN 0.02 Вариант с кэшированием суммы в sales 0.01
22 И все-таки, ORM в index.art есть! Автор Горшков Сергей Вадимович доклад «ORM: зло или благо?»
23 Пожалуйста, вопросы! Автор Горшков Сергей Вадимович доклад «ORM: благо или зло?»
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.