В статье рассматривается приложение метода конструктивного синтеза программ к созданию пользовательских интерфейсов Web-приложений. Для решения данной задачи построена специализированная конструктивная логика, которая позволяет синтезировать гарантированно правильные модели интерфейсов. Рассмотрена программная реализация и результаты практического использования модели.
пользовательский интерфейс, метод конструктивного синтеза программ, конструктивная логика, web-приложение, html-шаблон.
Введение
На сегодняшний день существует множество технологий и фреймворков для создания Web-приложений и, в частности, пользовательских интерфейсов, предназначенных для отображения в браузерах. И это не удивительно в связи с тем, что глобальные сети находят широчайшее применение во многих отраслях экономики, касается ли это потребительского, корпоративного или государственного сектора.
Процессы стандартизации языков HTML[1], CSS[2] и javascript[3] позволили достичь не только высокой степени кросс-платформенности пользовательских интерфейсов, но и достаточно хорошей степени кроссбраузерности, поэтому использование соответствующих стандартов при построении Web-приложений на сегодня стало доминирующим подходом.
Однако при разработке больших приложений одних только стандартов оказывается недостаточно: нужны шаблоны проектирования, библиотеки стандартных элементов управления, средстваподдержки логики представления (например, Presenter в модели MVP[4]) и многое другое. Соответствующие инструментальные средства все еще находятся в стадии становления, поэтому охватить весь стек необходимых технологий удается лишь в достаточно нишевых инструментах. В качестве хороших примеров из разряда свободно распространяемых продуктов можно привести MediaWiki[5], Drupal[6], WordPress[7]. Неизбежной расплатой для таких систем является привязка к серверным технологиям, что ограничивает возможности применения в ситуациях, когда серверное окружение для разработчика фиксировано.
Если рассматривать клиентские библиотеки, которые не зависят от серверных технологий, то четко прослеживается их специализация: на манипуляции с DOM-моделью (jQuery[8], Zepto.js[9]), стилевом оформлении страниц и элементах управления (Bootstrap[10], jQuery UI[11], w2ui[12]), построении каркасов приложений (AngularJS[13], Backbone.js[14], Knockout[15]).
1. HTML 4.01 Specification. URL: http://www.w3.org/TR/REC-html40/ (дата обращения: 30.09.2013).
2. Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification. URL: http://www.w3.org/TR/CSS2/ (дата обращения: 30.09.2013).
3. ECMAScript Language Specification - ECMA-262 Edition 5.1. URL: http://www.ecma-international.org/ecma-262/5.1/ (дата обращения: 30.09.2013).
4. Архитектура MVP. URL: http://www.gwtproject.org/articles/mvp-architecture.html (дата обращения: 30.09.2013).
5. MediaWiki. URL: http://www.mediawiki.org/wiki/MediaWiki (да-та обращения: 30.09.2013).
6. Drupal - Open Source CMS | drupal.org. https://drupal.org/ (дата обращения: 30.09.2013).
7. WordPress › Русский. URL: http://ru.wordpress.org/ (дата об-ращения: 30.09.2013).
8. jQuery. URL: http://jquery.com/ (дата обращения: 30.09.2013).
9. Zepto.js: the aerogel-weight jQuery-compatible JavaScript library. URL: http://zeptojs.com/ (дата обращения: 30.09.2013).
10. Bootstrap. URL: http://getbootstrap.com/ (дата обращения: 30.09.2013).
11. jQuery UI. URL: http://jqueryui.com/ (дата обращения: 30.09.2013).
12. w2ui: Home | JavaScript UI. URL: http://w2ui.com/web/ (дата обращения: 30.09.2013).
13. AngularJS - Superheroic JavaScript MVW Framework. URL: http://angularjs.org/ (дата обращения: 30.09.2013).
14. Backbone.js. URL: http://backbonejs.org/ (дата обращения: 30.09.2013).
15. Knockout : Home. URL: http://knockoutjs.com/ (дата обраще-ния: 30.09.2013).
16. Бельтюков А. П. Дедуктивный синтез программ первого порядка // Технологии информатизации профессиональной деятельности (в науке, образовании и промышленности) - ТИПД-2011 : тр. 3 Всерос. науч. конф. с междунар. участием, Ижевск, 8-12 нояб. 2011 г., Т.1, Удмуртский университет, 2011, 451-470.
17. Underscore.js. URL: http://underscorejs.org/ (дата обращения: 30.09.2013).
18. Online JavaScript beautifier. URL: http://jsbeautifier.org/ (дата обращения: 30.09.2013).
19. The MIT License (MIT) | Open Source Initiative. URL: http://opensource.org/licenses/MIT (дата обращения: 30.09.2013).