"Среда исполнения и фреймворк для QtScript"
"Скриптовый фреймворк для повседневных нужд" ))
Резюме проекта
Название проекта:
„QDroid”
Фреймворк для разработки программ и утилит средней сложности с помощью QtScript .
Среда исполнения скриптов QtScript.
Цель проекта:
Получение программной платформы на базе которой с помощью QtScript можно быстро собирать из готовых функциональных блоков утилиты средней сложности, простые GUI-приложение, с возможностью последующей переработки (модификации скриптового кода)
Результаты проекта:
- Исполняемая программа, позволяющая выполнять скриптовые модули и расширять набор используемых в программе типов объектов.
- Шаблоны модулей расширения и указания для программистов.
- Исходные тексты, спецификации форматов, документация на платформу в общем
доступе по лицензии GNU/GPL;
Представление проекта
«QDroid» - это фреймворк, среда, в которой исполняются небольшие приложения и
утилиты различного предназначения, написанные на скриптовом языке «QtScript» .
QtScript является интерпретируемым (не компилируемым, скриптовым) ООП-языком
программирования, соответствующий стандарту ECMA-262. Во многом он похож на
JavaScript, который так-же был разработан на базе данного стандарта.
QDroid создает вокруг скриптового движка среду исполнения с набором прикладных
классов, механизмами расширения, препроцессором языка и другими возможностями.
Одна из «прелестей» движка QtScriptEngene заключается в том, что он позволяет из
скрипта обращаться непосредственно к методам объекта, определенным при описании C++\
QT-класса. Это позволяет в короткие сроки простыми методами расширять функции набор
доступных в QDroid классов.
Другая «прелесть» - это поддержка сигнал-слотового механизма связи между
объектами, который предлагается в библиотеке QT.
«QDroid» позволяет ”сразу-и-на-месте”, в короткие сроки создавать и модифицировать
инструменты и утилиты для автоматизации различных операций.
«QDroid» содержит механизмы расширения, что позволяет в runtime по требованию
расширять функциональность системы.
В составе исходных кодов системы предоставляются образцы и шаблоны для быстрого
создания на С++ \ QT новых классов с заданной функциональностью.
Конфигурирование QDroid можно разделить на 2 уровня.
Инструменты и многократно используемые классы создаются с помощью стандартных
средств разработки для С++\QT4 в короткиие сроки и динамически подключаются к уже
собранной платформе.
Бизнес-логика, настройки и вариации необхомые ”здесь-и-сейчас” - описывается на
QtScript. Для создания или модификации QDroid-приложения не требуется средств
разработки – достаточно текстового редактора для правки исходного текста скрипта. Скрипт
QDroid ведет себя аналогично shell или bat скрипту — он сразу готов к исполнению.
Но в отличии от shell-скриптов, QtScript является ООП языком, поддерживает сложные
структуры данных, обработку событий и механизм сигнал-слотов и тд.
Область применения результатов проекта :
Автоматизация ручных операций; разработка утилит средней сложности
Стратегия осуществления :
- Разработка базовой версии собственными силами до достижения уровня полезности в собственных задачах c использованием свободно-доступных версий библиотеки QT.
- Создание открытого проекта для развития системы силами сообщества СПО.
Существующие аналоги и схожие проекты.:
- "Robotask" http://www.robotask.com/ .
- "AutoIt" http://www.oszone.net/3663
- (ещё какие есть? подсткажите?)
Плюсы по сравнению с автоматизацией на основе shell-скриптов - OOП-язык, работа со сложными структурами данных, поддержка сигнал-слотового механизма, отладчик скриптов (в будущем - с выходом QT 4.5);
Плюсы по сравнению с автоматизацией на основе других скриптовых языков расширенные GUI-классы, возможность обработки событий (сигналов)(например при выборе элемента в GUI); быстрые механизмы расширения и построения новых "модулей";
Технические достижения: QDroid решает ряд рутинных задач с регистрацией в QtScript новых классов, регистрацией конструкторов, недоступностью из скрипта многих public-функций стандартных GUI-классов (создаются классы-оболочки), наличием в некоторых сигналах не QObject-наследованных объектов (т.е. вы не можете обрабатывать такие сигналы с помощью скриптовых функций).
Первая функциональная веха - скрипт и набор ботов предоставляющий механизмы для отслеживания изменений в составе файлов 2-х ветвей разработки (основная и разработка), ведения заметок по составу файлов и синхронизации каталогов. ( пишется для применение в следующей ситуации: ведется разработка системы в 2-х ветвях "стабильная"("основная", "отчетная") и "разработка" - в стабильную ветвь выкладывается только часть файлов/проектов ветви "разработки"; необходимо отслеживать изменения в обоих ветвях и вести заметки кто когда и почему включил или нет тот или иной файл в основную ветвь, периодически проводить обновление основной ветви в соответствии с реестром файлов предназначенных для включения в основную ветвь.).
Предполагается, что так-же будут реализованы механизмы управления/регистрации наборами скриптов и подгрузки сторонних библиотек предоставляющих новых "ботов".
Срок выхода альфа версии - неделя-две - где-то в первой половине декабря, если меня не нагрузят другими задачами. Сейчас осталось доработать взаимодействие с GUI-классами и работу с системами управления версиями.
Платформы: все поддерживаемые QT ( Windows, Linux, Mac и др.). Пока проверяется на Windows и Linux.
Прошу высказать идеи, пожелания; указать на аналоги, высказать мысли по позиционированию программы и т.п.?