Pull to refresh

DVelum – платформа разработки на PHP + ExtJS4

Open source *PHP *ExtJS/Sencha *
Хочу познакомить Вас с проектом, который позволит по-новому взглянуть на процесс разработки приложений с web-интерфейсом.
Это не очередная cms или framework, это платформа разработки высокопроизводительных приложений, система управления данными.
При создании были использованы нестандартные интересные подходы. Ничего сверх революционного, реализованы очевидные вещи, которых сильно не хватает во фреймворках и cms.

Концепты системы начали прорабатываться с 2008 года, в 2011 году несколько различных по направлению проектов были объединены в DVelum.

Поводом для создания проекта послужило обилие наработок, реализацию которых не удалось найти в открытых framework'ах. Эти решения прошли апробацию в тяжелых боевых условиях. После того, как нам удалось значительно упростить себе жизнь при разработке проектов и стало ясно, что подобный подход имеет право на жизнь, возникло желание поделиться наработками с сообществом.

Проект распространяется по лицензии GNU GPL v3, находится в стадии бета-тестирования, текущая версия 0.8.4b.
Сайт проекта dvelum.ru

Кому может быть интересна платформа

Всем, кто занимается веб-разработкой на PHP. Разработчикам различных систем с web-интерфейсами, начиная от сайтов и заканчивая CRM и ERP.
Тем, кого не пугают такие слова как ООП, паттерны проектирования, MVC, ORM, ExtJs4, руководителям разработки и ведущим разработчикам проектов.
Использование DVelum позволит уменьшить количество ошибок начинающих разработчиков и головную боль при ревью кода, особенно ExtJs-интерфейсов.
Также избавит разработчиков от части рутины. Возможно Вы сможете подключить к сложному проекту менее опытных и квалифицированных специалистов, отдав им работу по набрасыванию компонент в визуальном интерфейсе.

Задачи, которые решает платформа:

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


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

Основные особенности


IDE

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



ORM

Платформа использует собственную легковесную ORM, более того, имеется визуальный интерфейс управления структурой данных, что значительно упрощает разработку. ORM способна сравнивать и синхронизировать структуру базы данных, опять же упрощая deploy базы данных. Реализована мультиязычность описания объектов. Также имеется интерактивная диаграмма зависимостей объектов.



Может возникнуть вопрос — почему мы не стали использовать уже готовую ORM, например Doctrine, все дело в том, что мы стараемся обеспечить простоту структуры и переносимость. Нам требовались специфические возможности для максимальной интеграции со встроенной IDE. Для увеличения производительности фронтенда мы вынесли выборки данных в модели, запись происходит через ORM.

Version Control

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

Media library

Медиатека позволяет управлять мультимедиа содержимым, производить поиск, редактирование и нарезку изображений, создавать превью.



Scaffolding

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

Deployment

В систему интегрирован визуальный интерфейс сборки пакетов обновлений для production-серверов. При помощи API локальная машина опрашивает сервер, получает карту файловой системы, сравнивает со своей как эталонной, после чего предлагает список файлов для обновления и удаления. Разработчик выбирает, какие файлы будет обновлять, по клику собирается zip-архив, который можно распаковать на production.
Систему публикации можно использовать для мониторинга стороннего вмешательства в исходный код Вашего приложения. Не редкость появление исполняемого javascript и iframe в исходных кодах проекта, система определит список измененных файлов.

Reports

Визуальный конструктор отчетов позволяет строить выборки данных на основе зависимостей объектов ORM. Довольно сырой, но перспективный модуль.



Pages

Модуль управления структурой сайта для любителей CMS (любители фреймворков, могут использовать обычный роутинг контроллеров).



Performance

Платформа предлагает оптимизированное ядро для Ваших проектов, из которого мы постарались выжать максимум производительности.
Мы очень серьезно подошли к вопросу производительности системы на этапе проектирования, поэтому нам удалось добиться колоссального отрыва от большинства других систем, при этом не потеряв в функциональности и удобстве.

Чтобы правильно настроить систему на максимальную производительность, воспользуйтесь руководством “Установка и настройка”.

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



Тестировалось обращение к главной странице блога, содержащего 10 записей.

Мы проводили достаточно много тестов по сравнению DVelum с популярными CMS, думаю публиковать их тут нет особого смысла, потому как CMS в данном случае не может конкурировать в производительности.

Конечно же только по тестам производительности нельзя судить о качестве системы в целом, по различным причинам разработчики не всегда уделяют столь пристальное внимание производительности, как уделяем мы. DooPHP (http://doophp.com/benchmark), был достойным ориентиром в плане возможной производительности, нам удалось его превзойти, это было похоже на занимательное соревнование. Leng Sheng Hong (автор DooPHP), привет тебе из России.

Мы не гонимся за модными технологиями, наша задача не замысловата — сделать быстрый и удобный инструментарий для разработчиков. При необходимости Вы в состоянии внедрить новинки самостоятельно. Вы можете добавить полюбившиеся вам библиотеки, взяв их из любимых framework, например, с легкостью интегрируются библиотеки Zend Framework.

Почему мы именно сейчас решили представить проект хабрасообществу, ведь он еще на стадии бета тестирования? Нам хотелось бы получить фидбэк перед созданием релиз-кандидата, Ваши отзывы, пожелания, предложения, конструктивная критика для нас очень важны.

Надеемся, что проект окажется полезным, найдет отклик у аудитории и свою нишу.
В сентябре постараемся выпустить первую стабильную версию, учесть пожелания и предложения.

Спасибо, что дочитали статью.

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

UPD 1:

Тест производительности «Hello World» (исходный код теста доступен в демо релизах RC2 и выше)

Tags:
Hubs:
Total votes 72: ↑54 and ↓18 +36
Views 13K
Comments Comments 90