Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Теоретические основы разработки веб-приложений

Содержание

Введение 4

Теоретические основы разработки веб-приложений. 7

2.1. Понятие и классификация web-технологий. 7

2.2. Классификация web-приложений 8

2.2.1. Корпоративный портал 8

2.2.2. CRM 9

2.2.3. ERP 9

2.2.4. Системы электронной коммерции. 9

2.2.5. Другие наиболее распространённые web-приложения: 10

Теоретические основы веб-программирования. 12

Выбор программного обеспечения. 13

4.1. Среды разработки web-приложений. 13

4.2. Критерии выбора среды разработки 14

4.2.1. Visual Studio 15

4.2.2. IntelliJ IDEA 16

4.2.3. Eclipse 16

4.3. Языки программирования и прочий софт. 17

4.3.1. Язык разметки гипертекстовых страниц HTML 17

4.3.2. CSS 18

4.3.3. JavaScript 18

4.3.4. Ajax 19

4.4. Фреймворки для создания web-приложений. 20

4.5. Типы фреймворков. 20

4.5.1. Фронтенд-фреймворки 21

4.5.2. Серверные фреймворки. 21

4.5.3. Клиентские фреймворки. 21

4.5.4. Многофункциональные фреймворки. 22

4.6. Преимущества и недостатки фреймворков 23

Готовые платформы для создания web-приложений. 24

5.1. SaaS-платформы для создания сайтов 24

5.1.1. Плюсы SaaS-платформ для создания сайта: 24

5.1.2. Минусы SaaS-платформ для создания сайта 25

5.1.3. Примеры SaaS-платформ: 25

5.2. Разработка на CMS. 25

5.2.1. Плюсы и минусы разработки на коробочных CMS: 26

Заключение 28

Список использованных источников 29

Введение

В современном мире, во втором десятилетии 21 века интернет-технологии проникли в нашу жизнь и ни одна сфера жизни человека не обходится без ИТ-технологий. Вся наша жизнь сейчас ушла в цифровое пространство: мы покупаем, продаем, оплачиваем что-либо через web-приложения. Это стало основой бизнес-индустрий, информационной культуры и неотъемлемой составляющей человеческой жизни. Использование digital-услуг с точки зрения любого бизнеса без исключения является основой процветания и комфортного устройства обмена информацией [1].

В данном разрезе Web-технологии перевернули работу бизнеса изнутри, взаимодействие с инфраструктурой и с внешним миром. Оказалось, что такие параметры компьютерной техники, как производительность, пропускная способность, емкость запоминающих устройств - не учитывали главную сложность системы – интерфейс между человеком и информационной технологией, реализующей корпоративный и личный информационный обмен. Когда интерфейс между человеком и применяемыми информационными компьютерными технологиями стал эргономичен и понятен для естественного восприятия последовало сильнейшее усиление интереса к возможностям web-приложений [2].

Создание Web-сайтов и связанных с этим интернет-приложений является одной из важнейших технологий разработки информационных ресурсов. Хорошо проработанный и спроектированный сайт, является лучшим технологическим средством представления коммерческой фирмы, образовательного учреждения, иных организаций. При этом данный ресурс работает круглосуточно. Анализ нескольких веб-сайтов [3], обеспечивающих информационную поддержку различных предприятий на предмет соответствия их поставленным целям, информативности, психофизиологическим требованиям, а также эффективности выбора средств разработки соответствующего веб-приложения, позволил выделить следующие характерные недостатки:

не всегда дизайн сайта соответствует ui/ux стандартам, что приводит к повышению уровня утомляемости или ослаблению внимания пользователя;

чрезмерное увлечение анимационными возможностями, графическими и видео изображениями, не несущими смысловой нагрузки, почти всегда влечет за собой уменьшение количества потенциальных клиентов приложения, а так же повышает требования к пропускной способности Интернет-соединения и потребляемому объему трафика;

часто встречается избыточность или, наоборот, недостаток информативности, предоставляемой веб-приложением информации;

некорректность выбора, на этапе разработки технического задания и последующего проектирования, средств разработки веб-приложения, влечет за собой существенное и необоснованное повышение стоимости проекта по созданию веб-сайта, приложения.

Таким образом, правильное определение функциональных возможностей средств проектирования и языков программирования для разработки сайта, определение психофизиологических требований, предъявляемых к текстовой и графической информации, представляющей пользовательский интерфейс, является весьма актуальной задачей [3].

Актуальность данной работы в том, что число онлайновых пользователей интернета более 53% населения Земли, или 4,1 млрд человек, имеют доступ к интернету, что создает необходимость в поиске путей использования новых технологий разработки веб-приложений, которые могли бы оказать существенное содействие в привлечении и удержании внимания потенциальных пользователей [4] [5].

Предмет исследования– web-технологии.

Объект – среды и языки разработки web-приложений.

Цель работы – определить критерии выбора программных средств разработки web-приложений.

Для достижения поставленной цели необходимо решить ряд задач: 1) рассмотреть основы разработки веб-приложений; 2) привести различные классификации web-приложений, используемых в предпринимательской деятельности; 3) проанализировать функциональные возможности программных сред разработки web-приложений и определить критерии выбора среды разработки; 4) проанализировать языки программирования для создания определенных web-приложений. Структура работы состоит из введения, двух глав и заключения.

Теоретические основы разработки веб-приложений.

    1. Понятие и классификация web-технологий.

Понятие и классификация web-технологий в настоящее время не стоит на месте. Сегодня существует большое количество средств и сервисов, которых не было несколько лет, а то и месяцев назад. Информация, доступная пользователям Internet, располагается на компьютерах (Web-серверах), на которых установлено специальное программное обеспечение. Значительная часть этой информации организована в виде Web-приложений [1]. Чтобы установить критерии выбора ПО для разработки web-приложений, начнем с их классификации и описания каждого сервиса, так как в основном приложения позволяют удобно и эффективно оптимизировать бизнес-процессы и решать большое количество бизнес задач.

Перед знакомством с классификацией необходимо понять, что такое web-приложение и как строится весь процесс. Информация, доступная пользователям Internet, располагается на компьютерах (Web-серверах), на которых установлено специальное программное обеспечение. Значительная часть этой информации организована в виде Web-сайтов [5]. Каждый из них имеет свое имя (адрес) в Internet. Web-приложение - клиент-серверное приложение, основная часть которой содержится на удаленном сервере, а пользовательский интерфейс (UI) отображается в браузере в виде веб-страниц и имеет свое имя. Для просмотра Web-приложений на компьютере пользователя используются специальные программы, которые называются браузерами. Наиболее распространенными браузерами в настоящее время являются Chrome, Safari, Yandex. В зависимости от того, какое имя сайта мы зададим в строке "Адрес", браузер будет загружать в свое окно соответствующую информацию.

Web-сайт состоит из связанных между собой Web-страниц. Web-страница представляет собой текстовый файл с расширением *.html, который содержит текстовую информацию и специальные команды - HTML-теги, определяющие в каком виде эта информация будет отображаться в окне браузера [3]. Вся графическая, аудио и видео информация непосредственно в Web-страниц не входит и представляет собой отдельные файлы. Так же web-приложение должно работать в режиме диалога с пользователем. Преимуществом данного подхода можно назвать:

отсутствие дублирования кода программы-сервера программами-клиентами;

так как все вычисления выполняются на сервере, то требования к компьютерам, на которых установлен клиент, минимальны;

все данные хранятся на сервере, который, как правило, защищён гораздо лучше большинства клиентов.

Для запуска веб-приложения пользователю не нужно устанавливать никаких дополнительных программ, оно запускается на любом устройстве с браузером и с доступом в интернет.

Работа клиента не зависит от операционной системы, стоящей на компьютере пользователя, поэтому при разработке веб-приложений нет необходимости писать отдельные версии для Windows, Linux, Mac OS и других операционных систем [3].

Для создания серверной части веб-приложений используются такие языки программирования, как: PHP, ASP, ASP.NET, Perl, C/C++, Java, Python, Ruby, NodeJS.

Для реализации клиентской части используют HTML, CSS, JavaScript, Ajax [2].

    1. Классификация web-приложений
      1. Корпоративный портал

Многофункциональный веб-сервис, позволяющий удобно и эффективно оптимизировать бизнес-процессы [1].

Решаемые задачи:

Улучшение качества работы с клиентами

Повышение результативности работы сотрудников

Упрочнение и улучшение связей между подразделениями компании

Удобное и результативное общение с контрагентами

Повышение мобильности сотрудников

Удаленная работа с документами

Проведение PR-мероприятий различной степени сложности

      1. CRM

Мощный инструмент автоматизации отношений с покупателями, эффективно решающий задачу успешного контроля, планирования и развития любого клиентоориентированного бизнеса [1].

Решаемые задачи:

Целостность и сохранность клиентской базы

Получение аналитики по продажам

Повышение объёма продаж

Эффективная оптимизация работы персонала

Сокращение бумажного документооборот

      1. ERP

Разработка ERP системы необходима крупным предприятиям всех форм собственности для открытия новых возможностей перед бизнесом.

Решаемые задачи:

Стандартизация форм отчетности и информационных систем

Улучшение взаимодействия между отделами

Контроль и синхронизация процессов

Интеграция с контрагентами

      1. Системы электронной коммерции.

Благодаря e-commerce производители и поставщики услуг/товаров могут предлагать в сети продукцию потенциальным покупателям, осуществлять прием и обработку заказов, управлять статусом заявок и т.д.

Решаемые задачи:

Получение подробной информации о запросах каждого индивидуального потребителя

Стремительный вывод нового продукта на рынок

Уменьшение затрат на совершение сделки

Сокращение пути товара к потребителю

      1. Другие наиболее распространённые web-приложения:

· Региональные Интернет-порталы, универсальные по своему направлению, но ограниченные географией заинтересованных посетителей (e1.ru) [3];

· Поисковые системы -- это Интернет-порталы, которые предназначены для того, чтобы предоставить их посетителю возможность найти сайты, на которых встречаются заданные слова или целые фразы (metabot.ru);

· Каталог -- это коллекция ссылок на сайты. Зачем же нужны каталоги, если есть поиск? Очень часто мы не знаем точно, что нам нужно, не можем это сформулировать парой слов (mail.ru);

· Электронные доски объявлений - являются местом в Интернет, где практически любой желающий может оставить информацию ознакомительного, пригласительного или рекламного характера;

· Форумы - это специальные сайты или разделы на сайтах, предназначенные для того, чтобы посетители, оставляя свои сообщения, обменивались мнениями;

· Чаты - являются еще одним местом для общения в Интернет, только его назначение не обмен мнениями на какую-то тему, а просто времяпрепровождение [1];

· Файлы для скачивания;

· Фотогалереи;

· Элементы статистики;

· Хранение в интернете различной информации;

· Серверы почтовых рассылок, они предлагают услуги по доставке информации широкому кругу читателей (subscribe.ru);

· Интернет-магазины и аукционы (ozon.ru, molotok.ru).

Теоретические основы веб-программирования.

Перед созданием web-приложения необходимо предусмотреть несколько проблем. Многие Web-дизайнеры сходятся во мнении, что одна из главных проблем Web-дизайна - многообразие браузеров и платформ, каждая из которых по-разному отображает содержимое сайта [1]. С выпуском каждого нового браузера улучшаются их характеристики и возможности, но это не означает, что более ранние версии при этом исчезают. В большинстве своем люди не склонны гнаться за новейшим и лучшим. Одни довольствуются тем, что у них имеется, а другие, вероятнее всего, работают на компьютерах фирм или учреждений, которые выбрали браузеры за них.

Поскольку главная наша задача - сделать содержимое страницы доступным для максимального количества пользователей, то для продвижения вперед одинаково важны и эксперимент, и использование новых технологий с учетом существующих реалий. Залог успеха дизайнерского решения лежит в понимании потребностей аудитории и в четком представлении, как сайт будет использован [2].

Так же необходимо понимать, что приложением будут пользоваться на разных типах устройств, соответственно нужно учитывать, что приложение должно быть адаптивным и кроссплатформенным [3].

Выбор программного обеспечения.

    1. Среды разработки web-приложений.

IDE – интегрированная среда, которая может выполнять функции для web-разработки. Большинство из них проектировались с целью создания программного обеспечения для персональных компьютеров и переносных девайсов. Но время диктует свои условия, и вчерашние инструменты оптимизации поиска вирусов сегодня работают на благо веб-индустрии. Примерно то же самое произошло с самими разработчиками [1].

Интегрированная среда внешне очень напоминает текстовый редактор для кода: участки кода подсвечиваются, система указывает на ошибки благодаря предзагруженной базе с синтаксисом языков. Но IDE для веб-программирования гораздо более функциональны, ведь позволяют проводить весь цикл работ над программой от начала до конца. Современная IDE содержит средства для компиляции или интерпретации, автоматизации сборки, поиска ошибок в коде и прочее. Наиболее продвинутые сборки оснащены различными инструментами относительно объектно-ориентированного программирования, которое набирает популярности и в вебе [2].

Одним из ключевых отличий IDE от текстовых редакторов называют возможность видеть результат своей работы. К примеру, вы разрабатываете визуальную часть приложения, а на соседней панели сразу видите, как преображаются объекты готового продукта. Благодаря такому функционалу можно значительно ускорить разработку. Но правда в том, что это не отличительный признак IDE. Множество текстовых редакторов оснащены подобным образом.

IDE, как правило, пытаются начинить как можно большим спектром функций. Это не всегда приводит к оптимизации: некоторые операции лучше выполнять на стороне. Именно потому возник альтернативный способ разработки, который предусматривает работу с совокупностью средств: редактор, отладчик и прочие должны подключаться отдельно. Именно поэтому важнейшим элементом в процессе разработки приложения является выбор правильной IDE, зависящий не только от платформы, но и уровня собственной подготовки. Давайте познакомимся с наиболее популярными из них методом «от противного», представляя не столько их преимущества, сколько наиболее часто встречаемые укоры со стороны разработчиков.

    1. Критерии выбора среды разработки

Большинство ресурсов в интернете анализируют IDE весьма субъективно. Одним среда для web-разработки может покажется интуитивной, другим – нет. Некоторым приходится по душе средство, которое обладает плагином для визуального программирования [1]. Но все это мало похоже на то, чего ждут пользователи: разумных обзоров, с учетом всех преимуществ и недостатков.

На каждую среду для веб-программирования мы будем накладывать воображаемую матрицу, состоящую из таких пунктов:

кроссплатформенность; уже ни один серьезный продукт не составляется в одиночку [2]. Потому важно, чтобы среда разработки могла быть установлена на различные девайсы с разными операционными системами;

цена; чтобы полюбить среду для web-разработки, ее нужно испытать. Плохо, когда первые шаги в IDE нужно делать за деньги [2]. Еще хуже, когда все наработки могут быть утеряны в один день: день оплаты подписки, который вы пропустили. Именно потому бесплатные IDE – лучшие;

поддержка; если среда для веб-программирования не получает регулярных обновлений, ее трудно назвать современной. Потому, такой критерий выбора, как саппорт, является одним из ключевых [4]. Поддержка старого Python прекратится уже через год – постарайтесь обновить IDE до того времени;

совместимость с веб-разработкой [3]; Главная цель нашего обзора – найти среду, которая будет хороша именно для веб-разработки, а не для любого другого направления. Хотя, универсальность и возможность применения сторонних технологий – всегда плюс: никогда не знаешь, какая из них послужит для потребностей веба.

Перейдем к конкретным примерам. Начнём с официальных представителей лидеров мобильного рынка: Windows, Google и Apple.

      1. Visual Studio

У этой IDE можно назвать один существенный недостаток – цена. Все остальное находится на высоком уровне. Кроме того, что программа регулярно обновляется, у нее есть целый набор инструментов исключительно для веб-разработки. Ну, а если вы хотите отвлечься на любой другой вид программирования, VS не имеет ограничений. Здесь можно создать все: от полномасштабной компьютерной игры до калькулятора на веб-странице. И все это в рамках одного приложения. Большие компании почти всегда обеспечивают своих сотрудников именно этим программным обеспечением [4].

Кроме цены, негативным моментом можно назвать узкий ряд операционных систем, с которыми может работать Visual Studio: пока это только Windows и Mac. Как только Microsoft решат выйти на более широкий рынок, мало кто сможет составить конкуренцию этой IDE. Однако, с этим шагом они не спешат, считая что уже заняли свою нишу [5].

Хорошие новости есть и для тех, кто хочет попробовать легендарную IDE бесплатно. Кроме длительного пробного периода, Microsoft приготовили пользователям и простое средство веб-разработки – Visual Studio 2013 Express Edition. Кроме того, что сама среда занимает чуть больше одного гигабайта, она еще и способна на толковый фронтенд. Так что, если вам нужна бесплатная и легкая среда веб-программирования, то Visual Studio может стать хорошим выбором. К тому же, стартуя с нее, можно получить временный бесплатный доступ к Azure [4].

Новичку будет просто невозможно самостоятельно разобраться с Visual Studio без прохождения специальных курсов и чтения литературы. Это продукт скорее для опытных разработчиков, обращающих внимание на качество редактора и функции тестирования.

      1. IntelliJ IDEA

IDE, разработанная компанией JetBrains, позволяющая создавать программы на множестве популярных языков, среди которых Java, JavaScript, Python, Ruby, Groovy, Scala, PHP, C, C++. Продукция компании jetbrains. Можно выбрать нужную среду интеграции в зависимости от языка программирования. Инструменты JetBrains охватывают все аспекты процесса разработки: управление проектами, написание кода, отладку, статический анализ кода, юнит-тестирование, анализ покрытия кода, баг-трекинг, код-ревью, непрерывную интеграцию, развертывание, профилирование производительности и памяти [3].

      1. Eclipse

Одно из самых популярных решений в арсенале веб-разработчика, не полностью бесплатна. Считается одной из самых быстрых и интуитивно понятных сред разработки для веб-приложений. Последнее обновление на Eclipse было выпущено в июне 2018 года. Уже несколько версий подряд Эклипс выходит и в полностью русифицированной версии [3].

IDE поддерживает создание не только веб-приложений, но и мобильного программного обеспечения. Это значительно расширяет возможность программиста: большинство площадок теперь имеют нативное приложение. Среди осей, на которых может работать Eclipse значится Android – разработка и тестирование происходит на одной платформе. Zend Studio – одно из приложений Eclipse. Позволяет создавать веб-приложения на основе языка PHP. Среда разработки, изначально ориентированная на работу с Java, прославилась большим количеством внешних модулей, существенно расширяющих её функциональность (в том числе, это касается количества поддерживаемых языков).

    1. Языки программирования и прочий софт.

Для создания web-проекта, необходимо собрать как можно больше информации о данной области исследования. Это необходимо для более полного отображения информации, предоставляемой определенной группе пользователей. Для привлечения людей к данному web-сайту необходимо как можно больше рассказать о возможностях и о достоинствах представляемого предприятия.Объём предоставленной информации напрямую зависит от заказчика. Чем больше будет предоставлено информации о компании, тем выше будет качество изготовляемого сайта. Затраты при изготовлении сайта могут быть как минимальные, так и большими. В частых случаях, при создании web-проекта затрачивается время на сбор материала, уточнения конкретных целей с заказчиком, поставленных перед разработкой, а также обсуждение объема и наличия информации в контенте сайта.

На сегодняшний день создать сайт можно различными средствами и на разных платформах [1]. Рассмотрим подробнее основные технологии:

язык разметки гипертекстовых страниц HTML

язык стилей CSS

JavaScript

Ajax

      1. Язык разметки гипертекстовых страниц HTML

Язык разметки гипертекстовых страниц (HTML - Hypertext Markup Language) представляет собой язык, разработанный специально для создания Web-документов [3]. Он определяет синтаксис и размещение специальных инструкций (тегов), которые не выводятся на экран, но указывают браузеру, как отображать содержимое документа. Он также используется для создания ссылок на другие документы, локальные или сетевые, например, находящиеся в сети Интернет.

Стандарт HTML и другие стандарты для Web разработаны под руководством консорциума W3C (World Wide Web Consortium). Стандарты, спецификации и проекты новых предложений можно найти на сайте http://www.3w.org/ [3].

В настоящее время действует спецификация HTML 4.0, поддержка которой со стороны основных браузеров постоянно растет.

На практике на стандарт HTML большое влияние оказывает наличие тегов, предложенных и поддерживаемых наиболее известными браузерами. Эти теги в данный момент могут как входить, так и не входить в состав действующей спецификации HTML [1].

      1. CSS

CSS (англ. Cascading Style Sheets — каскадные таблицы стилей) — формальный язык описания внешнего вида документа, написанного с использованием языка разметки. Преимущественно используется как средство описания, оформления внешнего вида веб-страниц, написанных с помощью языков разметки HTML и XHTML. CSS используется создателями веб-страниц для задания цветов, шрифтов, расположения отдельных блоков и других аспектов представления внешнего вида этих веб-страниц. Основной целью разработки CSS являлось разделение описания логической структуры веб-страницы от описания внешнего вида этой веб-страницы. Такое разделение может увеличить доступность документа, предоставить большую гибкость и возможность управления его представлением, а также уменьшить сложность и повторяемость в структурном содержимом [1].

      1. JavaScript

Язык программирования JavaScript разработан фирмой Netscape для создания интерактивных HTML-документов. Это объектно-ориентированный язык разработки встраиваемых приложений, выполняющихся как на стороне клиента, так и на стороне сервера. Синтаксис языка очень похож на синтаксис Java - поэтому его называют - Java-подобным [4].

Основные области применения JavaScript делятся на следующие категории:

· динамическое создание документа с помощью сценария;

· оперативная проверка достоверности заполняемых пользователем полей форм HTML до передачи их на сервер;

· создание динамических HTML-страниц совместно с каскадными таблицами стилей и объектной моделью документа;

· взаимодействие с пользователем при решении "локальных" задач, решаемых приложением JavaScript, встроенном в HTML-страницу;

      1. Ajax

Ajax расшифровывается как Asynchronous Javascript And XML (Асинхронные Javascript и XML) и технологией в строгом смысле слова не является. Если в стандартном web-приложении обработкой всей информации занимается сервер, тогда как браузер отвечает только за взаимодействие с пользователем, передачу запросов и вывод поступившего HTML, то в Ajax-приложении между пользователем и сервером появляется еще один посредник - движок Ajax. Он определяет, какие запросы можно обработать "на месте", а за какими необходимо обращаться на сервер [3].

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

Асинхронность проявляется в том, что далеко не каждый клик пользователя доходит до сервера, причем обратное тоже справедливо - далеко не каждая реакция сервера обусловлена запросом пользователя. Большую часть запросов формирует движок Ajax, причем его можно написать так, что он будет загружать информацию, предугадывая действия пользователя.

Где стоит использовать Ajax:

· Формы. Они очень медленны. Если асинхронно передавать данные, страница не перезагружается.

· Навигация в виде "дерева". Простая топология намного удобнее, но если уж до этого дошло, лучше использовать Ajax.

· Голосования. Пользователю будет приятней оставить свой голос за несколько секунд, чем за 30-40.

· Фильтры. Часто на сайтах делают сортировку по дате, по имени. C Ajax это будет значительно удобнее [4].

    1. Фреймворки для создания web-приложений.

Фреймворк - некий набор библиотек, который облегчает разработку любых продуктов: web-сайтов и web-сервисов, мобильных или десктопных приложений. В свою очередь, библиотекой мы называем совокупность файлов (или один файл), в которых хранятся подпрограммы, объекты, функции и другие данные, используемые программистом в работе [1].

Каждый фреймворк привязан к конкретной технологии и/или языку программирования. Например:

Bootstrap. Популярный фреймворк, помогающий быстро и качественно верстать макеты сайтов. Включает в себя шаблоны для создания слоев, кнопок, форм, блоков навигации и других элементов web-страниц [3].

Yii. Объектно-ориентированный фреймворк для создания масштабных web-приложений: интернет-магазинов, CRM-систем и пр. Главными достоинствами Yii является высокая производительность и безопасность.

    1. Типы фреймворков.

У фреймворков есть две основные функции: работа на серверной стороне (бэкенд) и работа на клиентской стороне (фронтенд).

      1. Фронтенд-фреймворки

Связаны с внешней частью приложения. Простыми словами, они отвечают за внешний вид приложения. Бэкенд отвечает за внутренне устройство приложения. Рассмотрим оба типа поподробнее.

      1. Серверные фреймворки.

Правила и архитектура таких фреймворков не даёт возможности создать веб-приложение с богатым интерфейсом. Они ограничены в своей функциональности, однако вы всё равно можете создавать простые страницы и разные формы. Также они могут формировать выходные данные и отвечать за безопасность в случае атак. Всё это определённо может упростить процесс разработки. Серверные фреймворки в основном отвечают за отдельные, но критически важные части приложения, без которых оно не сможет нормально работать [3]. Вот несколько самых популярных фреймворков и языки, с которыми они работают:

Django — Python;

Zend — PHP;

Express.js — JavaScript;

Ruby on Rails — Ruby.

      1. Клиентские фреймворки.

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

Backbone+Marionette;

Angular;

Ember.js;

Vue.js.

Все эти фреймворки используют JavaScript.

      1. Многофункциональные фреймворки.

Meteor известен как фулл-стек веб-фреймворк. Это значит, что он удовлетворяет почти все потребности как со стороны клиента, так и со стороны сервера, что делает Meteor чрезвычайно популярным. Вам не нужно тратить время на то, чтобы наладить взаимодействие между двумя фреймворками через REST API — вы можете просто выбрать Meteor и ускорить процесс разработки. Но это не главная особенность этого фреймворка. Обе стороны — серверная и клиентская — работают на одном языке, поэтому вы можете создавать и использовать для них один и тот же код. Следующая особенность — «режим реального времени» — когда вы что-то меняете в одном интерфейсе, изменения происходят и в остальных [3]. В качестве примера можно взять документ или таблицу с общим доступом. Когда вы добавляете комментарии или как-то изменяете содержимое, другие пользователи тоже это видят.

Более легковесные варианты специализируются на решении конкретных задач — такие фреймворки называются микрофреймворками. Они не предоставляют «из коробки» всё, что нужно, однако иногда лучше разложить функциональность на несколько подоходов (фреймворки, микрофреймворки, библиотеки). Функциональность микрофреймворков можно расширять с помощью сторонних приложений и создавать небольшие проекты на их основе или совместить микрофреймворк с основным «большим» фреймворком.

Например, если ваше приложение основано на Django и вам нужны веб-сокеты, то вы можете воспользоваться микрофреймворком aiohttp.

Другой пример: если ваше приложение не очень большое и вам нужна только простая маршрутизация URL и шаблоны с несложным контекстом, вы можете использовать Flask с Jinja2 (или другим шаблонизатором) вместо Django.

    1. Преимущества и недостатки фреймворков

Безусловно, использование фреймворков имеет массу достоинств. Приведем лишь некоторые из них:

Повышение скорости и удобства разработки

Сокращение затрат на создание приложения

Оптимизация рабочего времени

Написание чистого кода, не требующего существенного рефакторинга (переработки) в дальнейшем [3]

Фреймворк берет на себя большую часть работы. К примеру, программисту не нужно думать, как записать данные в файл – достаточно нажать соответствующую кнопку и вызвать метод, который решит эту задачу.

Однако в нашем мире нет ничего идеального. Именно поэтому у фреймворков есть серьезные недостатки:

Проблемы с безопасностью.

Почти все фреймворки имеют открытый исходный код, что, конечно, напрямую влияет на их защищенность от внешних угроз.

Сложность освоения. По сути, любой фреймворк – это результат работы другого программиста, и не всегда до конца ясно, как он функционирует.

Необходимость переучиваться при смене продукта.

Готовые платформы для создания web-приложений.

    1. SaaS-платформы для создания сайтов

SaaS (software as a service — программное обеспечение как услуга) — это способ распространения ПО на арендной основе. То есть не надо покупать CMS и заказывать индивидуальную разработку, достаточно только сконфигурировать выданный поставщиком сайт под свои задачи и ежемесячно (или ежегодно) вносить абонентскую плату [3].

SaaS-решения имеют свои достоинства и недостатки, поэтому не каждый проект может быть реализован подобным способом. На SaaS площадках имеет смысл создавать простые сайты, которые не особо требовательны к дизайну и ни сразу, ни в перспективе не потребуют каких-либо доработок программной логики.

      1. Плюсы SaaS-платформ для создания сайта:

Быстро — срок, необходимый для прохождения пути от идеи до запущенного проекта, может составлять несколько дней (а в отдельных случаях можно развернуть проект за несколько часов). По сути, нужно только придумать структуру сайта и наполнить страницы сайта своими материалами [1].

Недорого — SaaS-решения в краткосрочной перспективе обходятся гораздо дешевле заказной разработки даже аналогичного по предъявляемым требованиям проекта. В случае SaaS поставщик просто «отгружает» уже готовую версию ПО (себестоимость процесса достаточно мала), а в случае индивидуальной разработки поставщик решения тратит гораздо больше ресурсов на выявление и анализ требований, на решение поставленных задач и на запуск проекта [2].

Всё включено — как правило, в SaaS-решения входит всё необходимое для полноценной работы проекта — не надо выбирать, устанавливать и настраивать CMS, не надо заказывать хостинг и настраивать сервер, а в дальнейшем не надо заниматься техническим сопровождением проекта.

      1. Минусы SaaS-платформ для создания сайта

Шаблонный дизайн — оформление сайтов на SaaS-платформах производится по готовым шаблонам (часто не очень высокого качества), которые можно только «раскрасить» и на некоторых платформах можно отдельные блоки местами поменять. Для сайтов, к которым предъявляются требования к оформлению, такие решения не подходят.

Жёсткие рамки функциональных возможностей — если платформа «не умеет» что-то делать, то это никак не исправить. Программный продукт типовой и его настройка под индивидуальные пожелания крайне ограничена. Если проект сразу или в перспективе должен решать специфически задачи и гибко настраиваться, то SaaS-платформа для его разработки не подходит.

Невысокие производительность, отказоустойчивость и быстродействие — как правило, эти показатели аналогичны сайтам на виртуальном хостинге, работающим на неоптимизированной коробочной CMS. Для активно посещаемых проектов такое решение не подходит.

      1. Примеры SaaS-платформ:

UMI, WIX, InSales, Shopify, Setup, uCoz — некоторые из этих платформ специфичны (только для простых сайтов или только для интернет-магазинов), а некоторые — достаточно универсальны.

    1. Разработка на CMS.

Система управления сайтом (Content Management System) — это программный продукт, который служит для разработки некоторых стандартных разновидностей сайтов. Почти все CMS модульные [3], а модули многих из них собраны в комплекты (или редакции), предназначенные для тех или иных видов сайтов. Есть коробочные CMS для простых сайтов, для каталогов, для интернет-магазинов, для блогов, для новостных порталов и для других видов сайтов.

Много небольших и средних сайтов строится именно на CMS-платформах, так как это наиболее целесообразный с экономической точки зрения подход: требования к таким сайтам с технической точки зрения невысокие, а встроенные в CMS модули обычно удовлетворяют выдвигаемым к ним бизнес-требованиям.

Есть две разновидности CMS — коробочные (готовый программный продукт, который можно скачать или купить) и самописные (которые можно получить только от разработчика). Здесь мы рассмотрим только первые, так как вторые обычно представляют из себя просто тиражирование разработчиком однажды написанного проекта: отсюда проистекают проблемы с архитектурой, отсутствие документирования программного кода и, как следствие, модернизация и поддержка таких решений обычно весьма сложна.

Примеры коробочных CMS: 1С-Битрикс, UMI.CMS, NetCat, CS-Cart, ModX, Drupal, Joomla, WordPress, Magento, OpenCart, Tilda, WordPress

Подавляющее большинство коробочных CMS написано на PHP и использует СУБД MySQL.

      1. Плюсы и минусы разработки на коробочных CMS:

На CMS достаточно просто и быстро можно создать те виды сайтов, которые заложены в функционал этой системы. При этом разработка простых решений часто даже не требует участия в проекте программиста [2].

Многие бизнес-процессы, которые нужны для конечных пользователей или требуются для управления сайтом, уже заложены в функционал CMS. Например, в рамках предустановленного функционала сайт на CMS уже «умеет» редактировать страницы и управлять их структурой, управлять пользователями системы и их уровнем доступа, сортировать и фильтровать различные объекты и многое другое.

Поддержка сайтов на CMS проще, чем работа с системами написанными «с нуля»: этому способствует как наличие документации, так и высокий профессиональный уровень разработчиков CMS, который находит своё отражение в логичной и понятной архитектуре системы.

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

Реализация нестандартного функционала или тонкая настройка под свои бизнес-процессы, как правило, затруднена. Процессы, заложенные в системе, обычно тесно связаны, поэтому модификация одного из них приводит к необходимости модифицировать и зависимые от него. А в некоторых случаях реализация специфического функционала в рамках CMS является и вовсе невозможной.

Обратной стороной универсальности CMS является избыточность функционала и сопутствующие этому увеличение сложности управления и использования, а также некоторые проблемы с производительностью (сайт на CMS выполняет гарантированно больше операции с данными, чем того требует процесс, а структура хранения данных обычно несколько «раздута» относительно реальных потребностей проекта).

Выбор программного обеспечения зависит от ваших целей и возможностей. У каждой программы, IDE, языка программирования есть свои плюсы и минусы, рассмотренные нами, которые нужно брать во внимание при принятии решения. Стоит опираться на цели и задачи, поставленные на реализации в конкретном приложении и в конкретной его части.

Заключение

В настоящей работе рассмотрены актуальные вопросы анализа для последующего выбора инструментальных средств разработки веб приложений. Кроме того, рассмотрены важные вопросы учета критериев выбора средств разработки веб-приложения исходя из отраслевой принадлежности веб-приложения, потенциальной аудитории – пользователей веб-приложения и его архитектуры. Главный вывод, который можно сделать, что выбор средств разработки веб-приложения напрямую связан с тем контентом, который мы собираемся вложить в разрабатываемое приложение и, безусловно, от опыта самих разработчиков и получения желаемых результатов, имеющегося системного и технического обеспечения функционирования веб-приложения. С этой целью были выполнены следующие задачи: 1) рассмотрены основы разработки веб-приложений; 2) проанализированы различные классификации web-приложений, используемых в предпринимательской деятельности; 3) проведен анализ функциональных возможностей программных сред разработки web-приложений; 4) определены критерии выбора среды разработки.

Готовые коробочные решения всегда хороший и быстрый выход из ситуации. Такой вариант подойдет для стартапов, сайтов интернет-магазинов, т.е. что-то шаблонное.

Список использованных источников

  1. Сэмми Пьюривал: Основы разработки веб-приложений
  2. Джефф Паттон: Пользовательские истории. Искусство гибкой разработки ПО
  3. Сайт web-creator https://web-creator.ru/articles/platforms
  4. Основы алгоритмизации и программирования: учеб. пособие / Т.А. Жданова, Ю.С. Бузыкова. – Хабаровск : Изд-во Тихоокеан. гос. университета, 2011. –56с. Режим доступа: http://pnu.edu.ru/media/filer_public/2013/02/25/book_basics.pdf.
  5. Основы алгоритмизации и программирования : учебное пособие/ Г.Р. Кадырова. – Ульяновск : УлГТУ, 2014. – 95 с. Режим доступа: http://venec.ulstu.ru/lib/disk/2014/137.pdf.