Добавлен: 24.05.2023
Просмотров: 174
Скачиваний: 2
ВВЕДЕНИЕ
Сетевые технологии серьёзно эволюционировали с конца XX века, что и определило потребность в смене курса разработки программного обеспечения в сторону разработки веб-приложений.
Вместе с тем, возросло и количество инструментов для решения тех или иных задач в этой области, а также подходы к реализации конкретных задач. В первую очередь, проникновение веб-технологий повлияло на возможности удалённого доступа, совместной работы, не говоря уже о так называемом Веб 2.0 - методики проектирования систем, которые путём учёта сетевых взаимодействий становятся тем лучше, чем больше людей ими пользуются.
И каждый инструмент обладает своими преимуществами и недостатками, которые определяются задачами, поставленными перед специалистом или целой командой разработчиков. При этом, на каждую задачу есть свои средства разработки, вопреки идеям о том, что есть лишь единственный подход к разработке и строго ограниченный арсенал разработчика.
Предметом исследования является веб-разработка, а объектом – среды разработки веб-приложений. Цель работы – краткий обзор возможностей и определения критериев выбора конкретных средств разработки веб-приложений.
Для достижения поставленной цели необходимо решить следующий ряд задач. Во-первых, рассмотреть основные понятия веб-разработки. Во-вторых, привести различные классификации веб-приложений, используемых в предпринимательской деятельности. В-третьих, определить области применения действующих сред для разработки веб-приложений. И наконец, проанализировать функциональные возможности сред по созданию веб-приложений.
Сам взгляд на критерии выбора средств, приводимый в этой работе, как и предлагаемые мной инструменты, применимы только на текущий момент, поскольку технологии с начала эпохи Веб 2.0 претерпевают экспоненциальный рост.
И несмотря на то, что со временем критерии выбора, а также сами инструменты, могут претерпевать изменения, в то же время, ценностью данной работы как для самих разработчиков, так и менеджеров проектов, является сама модель, предполагающая уместность тех или иных средств с опорой на определённые критерии.
Стоит отдельно отметить, что текущее исследование, несмотря на детальный подход в исследовании именно интегрированных сред разработки, лишь поверхностно обозревает отдельные инструменты, такие как CMS, CMF, каскады веб-приложений и html-редакторы, а также плагины к интегрированным средам разработки, поскольку детальный анализ каждого из указанных инструментов, требует проведения отдельных исследований.
Также, в рамках данного исследования не вошло сравнения платформ для создания RIA, поскольку, не смотря на использование подобных в веб-технологиях, вопрос об отношении их к веб-приложениям до сих пор остаётся спорным, по причине архитектурных различий.
В числе представленных в работе интегрированных сред разработки также не будут указаны среды для обучения программированию, по причине ограниченной функциональности, а также исключены из обзора более неподдерживаемые среды – рассмотрены только актуальные на 2017 год.
Учитывая особенности сферы веб-разработки, в частности, динамику развития в области сетевых технологий, то в качестве источников для данного исследования используются как материалы с официальных сайтов самих разработчиков представляемых приложений, так и отраслевые публикации как с отечественных, так и зарубежных Интернет-ресурсов, что является преимуществом_этой_работы.
1. Теоретические основы разработки Web-приложений
1.1 Основные понятия
Веб-приложение — программа, обеспечивающих функционирование динамических сайтов Всемирной паутины. По архитектуре клиент-серверное приложение, в котором клиентом выступает браузер, а сервером — веб-сервер[1]. Логика веб-приложения распределена между сервером и клиентом, хранение данных осуществляется, преимущественно, на сервере, обмен информацией происходит по сети. Одним из преимуществ такого подхода является тот факт, что клиенты не зависят от конкретной операционной системы пользователя, поэтому веб-приложения являются кроссплатформенными сервисами. Веб-приложения стали широко популярными в конце 1990-х — начале 2000-х годов.
Само веб-приложение может выступать в качестве клиента других служб, например, базы данных или другого веб-приложения, расположенного на другом сервере. Ярким примером веб-приложения является система управления содержимым статей Википедии: множество её участников могут принимать участие в создании сетевой энциклопедии, используя для этого браузеры своих операционных систем (будь то Microsoft Windows, GNU/Linux или любая другая операционная система) и не загружая дополнительных исполняемых модулей для работы с базой данных статей.
Сайты как основа веб-приложений
Для оптимального подбора инструментария веб-разработки, стоит ориентироваться в том, какие вообще бывают сайты, на которых реализуются веб-приложения.
По структуре сайты делятся на статические и динамические.
Статические сайты проще, безопаснее и производительнее динамических [2][3]. Используются в основном для сайта-визитки лица или компании (вид деятельности, история, прайс-лист, контактные данные, реквизиты, схема проезда, и т.д., а специалисты размещают своё резюме), каталога продукции (то, что невозможно поместить в прайс-лист: подробное описание товаров/услуг, сертификаты, технические и потребительские данные, отзывы экспертов и т. д.), домашние страницы пользователей. Также статические страницы часто используются как шаблоны динамических сайтов.
Динамические сайты —сайты, состоящие из динамичных страниц — шаблонов, контента, скриптов и прочего, в виде отдельных файлов. Страница сайта, показываемая в итоге браузеру пользователя, формируется на стороне сервера динамически, по запросу, из страницы-шаблона и отдельно хранимого содержимого (информации, скриптов и др.) [4][5][6]. Как правило для отображения любого количества однотипных страниц используется одна страница-шаблон, в которую подгружается соответствующее содержимое, это позволяет одномоментно корректировать внешний вид сайта (множество всех его страниц), редактируя всего лишь один шаблон.
Редактирование собственно содержимого (как и страницы-шаблона) может производиться как средствами самого сайта, так и с применением стороннего ПО. Возможность править все страницы предоставляется только определенной категории пользователей (например, администраторам, или же зарегистрированным пользователям). В некоторых случаях к правке определённого веб-контента допускаются анонимные пользователи, что бывает реже (например, на форумах — добавление сообщений). Примером сайта с анонимным изменением может служить Википедия.
Процесс получения содержимого сайта обычно выглядит следующим образом:
- Генерация содержимого на стороне сервера в ответ на запрос от клиента путём запуска обработки файла-скрипта интерпретатором (чаще используются языки Java, PHP, Perl, ASP.NET, Ruby), выборки необходимой информации из баз данных и наполнение ею страницы;
- Передача сгенерированной странички клиенту;
- Генерация содержимого на стороне клиента средствами браузера вместе с исполнением скриптов клиентской стороны, если те были указаны в странице и получены (как JavaScript, например, для проверки на правильность задания паролей при регистрации на сайтах, и т. д., так и сложных последовательностей).
Чаще встречается именно комбинация этих методов генерации (например, «умная строка с подсказкой вариантов» у поисковых систем, «редакторы» в форумах, всплывающие меню, и другое).
По типу сайты и сервисы делятся на базы данных в Интернете, электронные библиотеки, блоги (включая блог-платформы, микроблоги, тамблелоги), веб-порталы (развлекательные сайты, браузерные игры, проектные сети, включая вики), хостинги (видеохостинги, хостинги изображений и фотобанки), сайты вопросов и ответов, сайты загрузок (включая файлообменники), каталоги ресурсов, интернет-магазины, информационно-аналитические сайты, информационно-справочные сайты, новостные сайты (и агрегаторы), сайты частных объявлений, сайты организаций, сайты по поиску работы, сервисы электронной почты (включая сервисы рассылки электронной почты), сервисы сравнения цен, социальные сети (включая службы знакомств), онлайн энциклопедии, BitTorrent-трекеры, веб-портфолио, чаты и форумы (имиджборды, виртуальная доска объявлений), площадка вебинаров, сайт-визитка, сайт-заглушка, виртуальные атласы, баннерные сети, социальные закладки.
Тенденцией 2010-ых годов для веб-сайтов являлся «адаптивный дизайн», который давал лучшие впечатления от просмотра, подстраиваясь под устройство пользователей [7]. Количество веб - сайтов снова вырос до более чем 1 миллиард в марте 2016 года, и продолжает расти с тех пор [8].
Веб-разработка — процесс создания веб-сайта или веб-приложения.
Основными этапами процесса являются веб-дизайн, вёрстка страниц, программирование для web на стороне клиента и сервера, а также конфигурирование веб-сервера [9].
На сегодняшний день существуют несколько этапов разработки веб-сайта:
- Проектирование сайта или веб-приложения менеджером проекта (сбор и анализ требований заполнением брифа, разработка технического задания, проектирование интерфейсов), а также разработка креативной концепции сайта. Этапы проектирования веб-сайтов зависят от многих факторов, таких как объём сайта, функциональность, задачи, которые должен выполнять будущий ресурс и многое другое. Именно менеджер проектов контролирует этапы и сроки [9];
- Создание дизайн-концепции сайта, макетов страниц и мультимедиа и FLASH-элементов. При этом отдельно создаётся дизайн главной страницы, и дизайны типовых страниц (например, статьи, новости, каталог продукции). Дизайнер создаёт один или несколько вариантов «дизайна страниц», которые представляют собой графические файлы, состоящие из наиболее мелких картинок-слоев элементов общего рисунка, учитывая ограничения стандартов HTML;
- Вёрстка страниц и шаблонов. HTML-верстальщик «нарезает» графическую картинку на отдельные рисунки, из которых впоследствии складывает HTML-страницы. В результате создаётся код, который можно просматривать с помощью браузера, а типовые страницы впоследствии будут использоваться как веб-шаблоны, то есть, как инструменты для отделения содержимого от визуального представления в веб-дизайне [10]. В простейшем своем смысле, веб-шаблон выполняет роль незаполненного бланка документа;
- Программирование - разработка функциональных инструментов, или интеграция в систему управления содержимым (CMS). Программирование сайта может осуществляться как «с нуля», так и на основе CMS — системы управления сайтом [11]. В случае с CMS надо сказать, что сама «CMS» в некотором смысле это готовый сайт, состоящий из заменяемых частей. «Программист» — в данном случае правильно будет назвать его просто специалистом по CMS — должен заменить стандартный шаблон, поставлявшийся с CMS, на оригинальный шаблон. Этот оригинальный шаблон он и должен создать на основе исходного «веб-дизайна». При программировании сайта специалисту назначаются контрольные точки сроков;
- Оптимизация и размещение материалов сайта [9]. Сайт наполняют контентом — текстами, изображениями, файлами для скачивания и т. д. Файлы сайта размещают на сервере провайдера и производят нужные настройки. На этом этапе сайт пока закрыт для посетителей;
- Тестирование и внесение корректировок: вид страницы с увеличенными шрифтами, при разных размерах окна браузера, при отсутствии флэш-плеера и многие другие варианты. Также, на этом этапе привлекают к работе дизайнера, чтобы он провёл авторский надзор, а также проводится юзабилити-тестирование [12];
- Сдача и открытие проекта на публичной площадке, когда заказчик или его доверенное лицо просматривают готовый проект и в случае, если все устраивает, то подписывают документы о сдаче проекта;
- Обучение навыкам обслуживания и работы в администраторской зоне сайта представителя заказчика.
В зависимости от текущей задачи и методологии разработки, какие-то из этапов могут отсутствовать, либо быть тесно связаны один с другим.
Также в настоящее время набирает популярность новый подход к разработке веб-приложений, называемый Ajax, и технология WebSocket. При использовании Ajax страницы веб-приложения не перезагружаются целиком, а лишь догружают необходимые данные с сервера, что делает их более интерактивными и производительными [13].
А технология WebSocket не требует постоянных запросов от клиента к серверу, а создает двунаправленное соединение, при котором сервер может отправлять данные клиенту без запроса от последнего. Таким образом появляется возможность динамически управлять контентом в режиме реального времени.
WebSocket разработан для воплощения в web-браузерах и web-серверах, но он может быть использован для любого клиентского или серверного приложения. Он делает возможным более тесное взаимодействие между браузером и веб-сайтом, способствуя распространению интерактивного содержимого и созданию приложений реального времени.
К минусам технологии можно отнести её ненадёжность, поскольку в случае использования прозрачных прокси-серверов возможна подмена кеша передаваемых данных с тем, что пользователи вместо реальных данных будут получать версию данных от злоумышленника [14].
Система управления содержимым (англ. Content management system, CMS) — информационная система или компьютерная программа, используемая для обеспечения и организации совместного процесса создания, редактирования и управления содержимым [11].
Главной задачей CMS является возможность собирать в единое целое и объединять на основе функциональных ролей и задач все разнотипные источники знаний и информации, доступные как внутри организации, так и за ее пределами, а также возможность обеспечения взаимодействия сотрудников, рабочих групп и проектов с созданными ими базами знаний, информацией и данными так, чтобы их легко можно было найти, извлечь и повторно использовать привычным для пользователя образом [15].
В системе управления контентом могут быть определены самые различные данные: документы, фильмы, фотографии, номера телефонов, научные данные и так далее.
В общем случае системы управления содержимым делятся на:
- Систему управления содержимым масштаба предприятия (англ. Enterprise Content Management System);
- Систему управления веб-содержимым (англ. Web Content Management System).
В силу того, что ECMS имеют глубокую внутреннюю классификацию по предметным областям (HRM, DMS, CRM, ERP и т. д.), термин CMS заместил собой WCMS, превратившись в синоним системы управления сайтами. Подобные CMS позволяют управлять текстовым и графическим наполнением веб-сайта, предоставляя пользователю интерфейс для работы с содержимым сайта, удобные инструменты хранения и публикации информации, автоматизируя процессы размещения информации в базах данных и её выдачи в HTML [16].