#3, Май'2004 :: Спецвыпуск. PHPConf 2004

Page 61

PHP Inside №3 •

Реализация объектного интерфейса к любым SQL-операциям в общем виде не приводит к упрощению, а порой наоборот;

Путь OQL(Hibernate - HQL): from a where a.b.b_attr = ...

Приложение I. Слайды

Основные плюсы подхода •

концентрация кода, относящегося к СУБД и описанию данных в отдельном(одном) месте;

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

следствие (1): дополнительные возможности автоматизации разработки,отладки, тестирования (автогенерация кода, тестов по схеме данных ─ в ряде случаев удобно);

относительный плюс: удобство объектной модели (радикальная версия, крайне неверная - «программисту проще с классами»).

Основные минусы подхода •

Богатство реляционных операций несозмеримо больше возможностей большинства ORM. РМ имеет серъезную теоретическую базу, OM ─ нестрогие («инженерные», ненаучные), удобные человеку представления об объектах реального мира. неизбежны: доводка, смесь подходов (риск получить неуправляемый код);

Решения на базе ORM сложно назвать «лёгкими» (дополнительная проблема скриптовых языков ─ компиляция);

Члены команды должны «говорить на одном языке», а принципы ORM стратегии нетривиальны для полного понимания и эффективного использования ─ необходимы дополнительные затраты на обучение;

Сложность унификации отображения для разных СУБД. из-за этого многие ORM имеют ряд неочевидных ограничений, которые могут быть замечены уже после выбора стратегии и начала работ;

Для большинства «продвинутых» СУБД эффективнее бизнес-логику переносить в хранимые процедуры и триггеры (производительность может отличаться на порядок и больше). ORM как правило «навязывает» другую стратегию;

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

Специфика веб-проектов •

Почти всегда bottleneck-база;.

Для разных классов задач распространены свои механизмы кэширования (кэширование отрендеренных шаблонов(СМИ) вместо кэширования объектов(сообщества, персонифицированные вебсервисы)); 60


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.