Доклад«ORM: благо или зло?»

Содержание

Слайд 2

Что такое ORM?

ORM (Object-relational mapping) - технология программирования, которая связывает базы данных

Что такое ORM? ORM (Object-relational mapping) - технология программирования, которая связывает базы
с концепциями объектно-ориентированных языков программирования.

Автор
Горшков Сергей Вадимович

доклад
«ORM: зло или благо?»

Слайд 3

Что такое ORM?

Автор
Горшков Сергей Вадимович

доклад
«ORM: благо или зло?»

Нет ORM

Есть ORM

Приложение

База данных

Приложение

База данных

ORM

Что такое ORM? Автор Горшков Сергей Вадимович доклад «ORM: благо или зло?»

Слайд 4

Что такое ORM?

Автор
Горшков Сергей Вадимович

доклад
«ORM: зло или благо?»

Нет ORM

Есть ORM

INSERT INTO clients

Что такое ORM? Автор Горшков Сергей Вадимович доклад «ORM: зло или благо?»
SET name=‘Альфа’;

$client = new Client ();
$client->setName (“Альфа“);
$client->persist ();

$client = new Client ();
$client->name = “Альфа“;
$client->Save ();

Слайд 5

Сократить семантический провал между объектной и реляционной формой хранения данных.
Повысить скорость и

Сократить семантический провал между объектной и реляционной формой хранения данных. Повысить скорость
снизить трудоемкость работы программиста (требуется меньше кода, который проще отлаживать).
Код, использующий ORM, меньше подвержен ошибкам.

Зачем нужны ORM?

Автор
Горшков Сергей Вадимович

доклад
«ORM: благо или зло?»

Слайд 6

Для тестов будем использовать Doctrine 2 (из Symfony)

Автор
Горшков Сергей Вадимович

Одна из наиболее современных

Для тестов будем использовать Doctrine 2 (из Symfony) Автор Горшков Сергей Вадимович
и мощных ORM, доступных для связки PHP / MySQL.
Содержит класс QueryBuilder, позволяющий конструировать запросы.
Также реализует собственный диалект SQL под названием DQL, в котором вместо таблиц и полей используются объекты и их свойства.

доклад
«ORM: зло или благо?»

Слайд 7

Семантический провал

Автор
Горшков Сергей Вадимович

доклад
«ORM: благо или зло?»

Мир объектов

Мир реляционной
базы данных

TABLE Client

class Client

$client

Семантический провал Автор Горшков Сергей Вадимович доклад «ORM: благо или зло?» Мир
= new Client ();
$client->setName (“Альфа“);
$client->persist ();

Слайд 8

Не всегда можно однозначно сопоставить класс и объект БД (например, в случае

Не всегда можно однозначно сопоставить класс и объект БД (например, в случае
таблиц-связок нет нужды плодить отдельный объект для каждой связи).

Возражения?

Автор
Горшков Сергей Вадимович

доклад
«ORM: зло или благо?»

Не представляя себе реальной структуры БД, программисту будет крайне сложно работать с базой рационально, и оптимизировать скорость работы.

Абстрагируясь от базы, мы практически исключаем возможность использования ее «продвинутых» средств, таких как хранимые процедуры, представления, триггеры.

Слайд 9

Снизить трудозатраты программиста

Автор
Горшков Сергей Вадимович

доклад
«ORM: благо или зло?»

$client = new Client ();
$client->setName

Снизить трудозатраты программиста Автор Горшков Сергей Вадимович доклад «ORM: благо или зло?»
(“Альфа“);
$client->persist ();

$s=“INSERT INTO clients SET name=‘Альфа’”;
mysql_query ($s, $connid);

Слайд 10

Возражения?

Автор
Горшков Сергей Вадимович

доклад
«ORM: зло или благо?»

Возражения? Автор Горшков Сергей Вадимович доклад «ORM: зло или благо?»

Слайд 11

Возражения?

Автор
Горшков Сергей Вадимович

доклад
«ORM: благо или зло?»

Ускорение работы программиста обычно приводит к

Возражения? Автор Горшков Сергей Вадимович доклад «ORM: благо или зло?» Ускорение работы
замедлению работы продукта, что в конечном счете, с точки зрения экономики, окажется гораздо менее рационально.
Все случаи обращения к БД в сколько-нибудь сложном проекте все равно не охватываются стандартными возможностями ORM. В таких случаях применяются «костыли», которые, в конечном счете, замедляют работу программиста.

Слайд 12

Снизить число ошибок

Автор
Горшков Сергей Вадимович

доклад
«ORM: зло или благо?»

Снизить число ошибок Автор Горшков Сергей Вадимович доклад «ORM: зло или благо?»

Слайд 13

Скорость: тестовый случай

Автор
Горшков Сергей Вадимович

доклад
«ORM: благо или зло?»

Продажи

Клиенты

Товары

Продажи – Товары

Задача – построить

Скорость: тестовый случай Автор Горшков Сергей Вадимович доклад «ORM: благо или зло?»
таблицу вида:
Дата продажи Клиент Сумма
01.01.2011 Альфа 1000

Слайд 14

Doctrine Query Builder

Автор
Горшков Сергей Вадимович

доклад
«ORM: зло или благо?»

Doctrine Query Builder Автор Горшков Сергей Вадимович доклад «ORM: зло или благо?»

Слайд 15

DQL

Автор
Горшков Сергей Вадимович

доклад
«ORM: благо или зло?»

DQL Автор Горшков Сергей Вадимович доклад «ORM: благо или зло?»

Слайд 16

Прямой запрос из Doctrine

Автор
Горшков Сергей Вадимович

доклад
«ORM: зло или благо?»

Прямой запрос из Doctrine Автор Горшков Сергей Вадимович доклад «ORM: зло или благо?»

Слайд 17

Прямой запрос из PHP: подзапрос

Автор
Горшков Сергей Вадимович

доклад
«ORM: зло или благо?»

Прямой запрос из PHP: подзапрос Автор Горшков Сергей Вадимович доклад «ORM: зло или благо?»

Слайд 18

Прямой запрос из PHP: JOIN

Автор
Горшков Сергей Вадимович

доклад
«ORM: благо или зло?»

Прямой запрос из PHP: JOIN Автор Горшков Сергей Вадимович доклад «ORM: благо или зло?»

Слайд 19

Кэширование суммы в sales

Автор
Горшков Сергей Вадимович

доклад
«ORM: зло или благо?»

Кэширование суммы в sales Автор Горшков Сергей Вадимович доклад «ORM: зло или благо?»

Слайд 20

И какие же результаты?

Автор
Горшков Сергей Вадимович

доклад
«ORM: благо или зло?»

И какие же результаты? Автор Горшков Сергей Вадимович доклад «ORM: благо или зло?»

Слайд 21

И какие же результаты?

Автор
Горшков Сергей Вадимович

доклад
«ORM: благо или зло?»

И какие же результаты? Автор Горшков Сергей Вадимович доклад «ORM: благо или зло?»

Слайд 22

И все-таки, ORM в index.art есть!

Автор
Горшков Сергей Вадимович

доклад
«ORM: зло или благо?»

И все-таки, ORM в index.art есть! Автор Горшков Сергей Вадимович доклад «ORM: зло или благо?»
Имя файла: Доклад«ORM:-благо-или-зло?».pptx
Количество просмотров: 195
Количество скачиваний: 0