ORM, несомненно, мощная и удобная вещь, но запросы генерируются не только не всегда оптимальные, но еще и лишние. При создании объекта модели ORM должен знать информацию о всех полях соответствующей таблицы БД. Что приводит к нежелательным запросам к БД.
Читать полностью »
Рубрика «orm» - 9
Избавление Kohana ORM от лишних запросов к БД
2012-10-18 в 17:26, admin, рубрики: Kohana, orm, php, метки: Kohana, ormRedBeanPHP — CodeFirst PHP фреймворк
2012-08-22 в 10:55, admin, рубрики: orm, php, RedBeanPHP, Веб-разработка, Песочница, метки: orm, PHP, RedBeanPHP
В данном посте речь пойдет об весьма интересном ORM фреймворке RedBeanPHP. Примечателен он прежде всего возможностью создавать структуру базы данных на лету. К тому же фреймворк прост в использовании как две копейки. Моё повествование будет разделено на 3 части.
В второй части основная тема будет — модели. В третей — изменение логики работы фреймворка.
Перед написанием поста я потрудился и сделал тестовое приложение для того, что бы убедиться на своем опыте в возможности невероятно облегчить работу. Ведь я наверно не один, кто прописывает поля в нескольких местах с жутким осознанием бессмысленности этой работы, особенно на начальном этапе разработки. Наконец появился аналог Entity Framework Code First из .NET, который в свое время вызвал у меня дикий восторг. И так по порядку.
Читать полностью »
Perl: ORM с помощью DBIx::Class (DBIC)
2012-07-26 в 16:32, admin, рубрики: database, orm, perl, sql, sqlite, метки: database, orm, perl, sql, sqlite Доброго времени суток уважаемые Хабрецы!
Здесь я расскажу вам об использовании DBIx::Class, с помощью которого вы сможете реализовать Object Relation Mapping (ORM) на языке Perl. опросы о том, полезен или бесполезен ORM как таковой и другие
риторические размышления в стиле «жили же раньше люди как-то без компьютеров, и зачем они нужны сейчас?!», я обошел стороной. Обо всем об этом прошу в кОменты.
А теперь собственно об использовании DBIx::Class.
Читать полностью »
HyperActive Record – недо-ORM на CodeIgniter
2012-07-25 в 11:40, admin, рубрики: codeigniter, innodb, mysql, orm, php, Веб-разработка, записи, объекты, связи, фреймворки, метки: codeigniter, innodb, mysql, orm, PHP, записи, объекты, связи, фреймворки
Общее описание
HyperActive Record – это надстройка над классом DB для фреймворка CodeIgniter 2.0 и выше, позволяющая получать значения полей связанных с записью объектов по внешним ключам (foreign keys) без дополнительного описания связей и данных. Такая недо-ORM
Читать полностью »
Откуда тормоза в ORM?
2012-07-18 в 16:10, admin, рубрики: django, orm, python, высокая производительность, производительность, метки: Django, orm, python, производительностьАнализ некоторых python ORM на непроизводительные расходы
Введение
При разработке приложения на python django, я столкнулся с его неадекватным торможением.
После нескольких попыток улучшить довольно сложные алгоритмы расчетов, я обратил внимание, что существенные улучшения этих алгоритмов приводили к весьма скромному результату — из чего я сделал вывод, что узкое место вовсе не в алгоритмах.
Последующий анализ показал, что действительно, основным непроизводительным потребителем ресурсов процессора оказался django ORM, который был использован для доступа к данным, необходимым при расчетах.Читать полностью »
DroidParts — библиотека для Android 8-in-1
2012-06-04 в 12:40, admin, рубрики: android development, dependency injection, orm, Разработка под android, метки: android development, dependency injection, orm Этой статьёй я открываю цикл, посвящённый разработке Android-приложений. Но не типичных для Google Play, написанных, очевидно, задней левой mНогой, а приложений корректных и элегантных. В этом деле нам поможет DroidParts — швейцарский нож Android-библиотек с 8 лезвиями:
- Dependency Injection: инициализация системных и собственных зависимостей;
- Object-Relational Mapping для SQLite: CRUD-операции «из коробки»;
- Поддержка Fragments, ActionBarSherlock;
- Простая (де-)сериализация JSON;
- AsyncTasks, IntentService с обработкой Exсeptions;
- RESTful HTTP client с поддержкой JSON;
- L.og без указания тега, конфигурируемый через AndroidManifest;
- Утилиты типа асинхронного http-загрузчика с кешированием, View- и Intent-помощников.
Буквально час назад*
увидела свет первая версия библиотеки, но сначала…
Читать полностью »
Django и особенности использования транзакций в MySQL
2012-05-20 в 16:00, admin, рубрики: django, innodb, mysql, orm, python, transactions, проблемы, транзакции, метки: Django, innodb, mysql, orm, python, transactions, проблемы, транзакции Наверное всем известно, что Django является одним из самых популярных фреймворков для web-разработки на python-е. И даже если в основе web-проекта лежит сторонний код, то зачастую при разработке используют отдельные части этого фреймворка — например ORM. В данной статье я хотел бы рассказать об особенностях использования Django ORM при работе с базой данных MySQL, а именно про транзакции и подводные камни, связанные с ними. Так, например, если в какой-то момент вы осознаёте, что вместо ожидаемых данных, возвращается совершенно другой результат, то возможно, данная статья поможет разобраться что к чему.
Читать полностью »
А как выглядит ваш прикладной код?
2012-05-18 в 11:51, admin, рубрики: .net, ERP, ERP-системы, Oreodor, orm, Проектирование и рефакторинг, метки: .net, Erp, Oreodor, ormПри разработке платформы я считаю крайне важным уделять особое внимание простоте, понятности и удобстве работы с прикладным кодом. Испробовав разные подходы, я хочу поделиться удобными рецептами из своего опыта.
Под прикладным кодом имеется в виду код, относящийся непосредственно к бизнес-логике конкретного приложения, при этом, в отличии от ядра (framework-а, платформы) такой код максимально подвержен изменениям и в крупных проектах может составлять львиную долю проекта. От удобства прикладного разработчика зависит скорость и качество разработки самым существенным образом.
Например на языке Brainfuck Hello world выглядит так:
А вот наши критерии удобства:
- Строгая типизация
- Документированность
- Отсутствие “мусора”
- Однотипность
- Лаконичность
ORM в Android c помощью ORMLite
2012-05-12 в 17:40, admin, рубрики: android, greendao, java, java orm, orm, ORMLite, Разработка под android, метки: android, greendao, java orm, orm, ORMLiteНа данный момент для платформы Android существует несколько решений, позволяющих реализовать ORM-подход для работы с базой данных, но основных два. Это ORMLite и GreenDAO.
Для новичков стоит сделать отступление и рассказать что такое ORM вообще. ORM — object-ralational mapping. Объектно-реляционное отображение означает, что программисту гораздо удобнее оперировать с объектами, которые он использует в своём приложении, нежели чем с таблицами, в которых хранятся данные в реляционных базах данных. Для связи реляционных СУБД с объектной моделью приложения используются ORM-технологии. Так для решения задач объектно-реляционного отображения в Android используют один из сторонних фреймворков. GreenDAO и ORMLite — являются библиотеками с открытым кодом.
Читать полностью »
Автоматическая миграция БД в Entity Framework
2012-05-04 в 10:28, admin, рубрики: .net, .net 4.0, orm, метки: .net 4.0, ormВ процессе разработки ПО, когда ещё не весь функционал определён окончательно, структура БД часто изменяется. И если используется какой-либо ORM-framework, изменение БД после изменения модели данных доставляет некоторые неудобства (по сути нужно проделать двойную работу по изменению класса модели и структуры БД). Вкратце, как сделать миграцию в EF4 Code First с помощью Package Manager Console описано здесь, я же постараюсь описать как работает автоматическая миграция без участия разработчика (точнее, при минимальном участии).