Alterator/Ideas: различия между версиями
Dkr (обсуждение | вклад) м (Новая страница: «=== Что не нравится === Опыт написания модулей достаточной сложности вызывает двойственное ...») |
Dkr (обсуждение | вклад) |
||
Строка 25: | Строка 25: | ||
* Принимает от тонкого клиента события (нажатия клавиш, etc) | * Принимает от тонкого клиента события (нажатия клавиш, etc) | ||
* Далее, ведет себя так же, как и обычное приложение. | * Далее, ведет себя так же, как и обычное приложение. | ||
* Умеет выполнять команды вида ''cmdline modulename action args'' (d-bus, socket ?) | |||
==== Тонкий клиент ==== | ==== Тонкий клиент ==== |
Версия от 15:24, 29 апреля 2010
Что не нравится
Опыт написания модулей достаточной сложности вызывает двойственное ощущение. С одной стороны, есть некоторая инфраструктура, позволяющая писать модули настройки системы. С другой стороны, при достижении некоторого уровня сложности, модуль начинает работать визуально медленно.
Так же вызывает некоторое смущение необходимость писать два интерфейса, HTML и Qt, при чем, для Qt, на Scheme. Потом еще backend на shell, который, в некоторых случаях, имеет еще и вызовы на ruby и/или perl.
Пока форма имеет 10-15 полей, которые заполняются значениями при старте, а потом отдают их backend-у для записи, все выглядит достойно.
Но если значений 30-50, и есть select, table, то визуально заметно, как форма этими значениями заполняется.
Идея
Использовать возможности C++/Qt в полном объеме. Комплекс состоит из модуля, сервера тонких клиентов, тонких клиентов и самостоятельного приложения, исполняющего данный модуль.
Модуль
Включает следующие файлы:
- modulename.desktop. Такой же, как и существующий в альтераторе. Для генерации меню и получения ссылок на тип обработчика, путь к интерфейсу и скрипту.
- modulename.ui. Интерфейс, созданный в любом графическом дизайнере (Qt4Designer) или руками.
- modulename.qsa. Скрипт на QtScript. Логика работы модуля.
Сервер тонких клиентов
- Считывает файл UI, отдает его тонкому клиенту по запросу.
- Умеет строить меню и отдавать его клиенту.
- Выполняет скрипт, при необходимости делит на порции результат работы и отдает тонкому клиенту для наполнения UI
- Принимает от тонкого клиента события (нажатия клавиш, etc)
- Далее, ведет себя так же, как и обычное приложение.
- Умеет выполнять команды вида cmdline modulename action args (d-bus, socket ?)
Тонкий клиент
- Подключается к серверу клиентов, получает от него форму авторизации, после этого, меню или запрошенный интерфейс.
- Отображает форму и данные, для ее наполнения, получаемые от сервера.
- "Держит" соединеие, передает keep-alive.
Самостоятельное приложение (толстый клиент)
Самостоятельно обрабатывает модули для режима работы инсталлятора или локальной работы на рабочей станции или сервера, с Х и легким DE.
Преимущества
В данном варианте предполагается использование только одного, хорошо документированного и распространенного набора интсрументов.