Вход:  Пароль:  
FreeSource: AltLinux/Sisyphus/Alterator/rails ...
Free Source | Каталог | Изменения | НовыеКомментарии | Пользователи | Регистрация |
Эта страница была перенесена на altlinux.org. Текст на freesource.info заморожен.

Form based interface

Разделение сущностей

Как показал опыт эксплуатации alterator, главная проблема, с которой сталкивается пользователь этой системы — создание динамического интерфейса. Бакенд пишется мгновенно, а как только требуется изобразить что-то на экране — возникает полное непонимание того, как:


Проект FBI (сокращение от Form Based Interface) призван решить эту проблему. Типичный модуль конфигуратора делится на следующие составляющие:

Дизайн

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

Workflow

Большинство диалогов имеют одну и ту же логику заполнения шаблона; часть особенных случаев решается заданием дополнительных параметров. Вместе с FBI поставляется набор самых распространённых workflow, таких как: form (форма) и card-index (картотека).

Визуальные эффекты

Эффекты также повторяются от формы к форме. Налицо повторное использование компонент. Большую часть работы (за исключением написания бакенда) для автора модуля уже сделали другие разработчики. Вместе с FBI поставляется набор самых распространённых визуальных эффектов. Например, возможно добавить возможности AJAX при работе с card-index и тем самым сильно приблизить поведение web-приложения к традиционному GUI.

Первый модуль

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

Рабочий каталог

Все модули alterator имеют единую внутреннюю структуру. В принципе никто не запрещает вольностей, но при использовании стандартной раскладки можно воспользоваться удобными функциями отладки модуля и готовыми правилами для make.
В нашем примере используются следующие каталоги:

Бакенд

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


Сохраняем файл бакенда как backend3/foo и, находясь в рабочем каталоге, убеждаемся, что бакенд работает:


Шаблон

Теперь давайте нарисуем шаблон формы. Если мы планируем из браузера обращаться к шаблону по адресу /foo, то сохраняем файл шаблона как templates/foo/index.html. Шаблон будет состоять всёго лишь из двух текстовых полей и меток к ним.



Обратите внимание на параметр wf в теге html — там указано, что заполнением формы будет заниматься стандартный workflow form.

Браузер

Первым делом запускаем сервис configd специальным образом, чтобы он обнаружил файлы из нашего рабочего каталога — находясь в этом каталоге, выполняем команду /usr/sbin/configd -l. Теперь отправляемся браузером к web-интерфейсу по адресу /foo (https://localhost:8080/foo) и обнаруживаем, что только что сделанный модуль успешно функционирует.


Страницы, ссылающиеся на данную: AltLinux/Sisyphus/Alterator
AltLinux/Sisyphus/Alterator/reserved


 
Файлов нет. [Показать файлы/форму]
Комментарии [Скрыть комментарии/форму]

http://www.oreillynet.com/ruby/blog/2007/03/why_was_rails_only_possible_wi.html :)
(хотя у функциональных языков будто больше шансов, чем у обитателей террариумов)

-- MichaelShigorin (2007-04-06 23:08:36)