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

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 28.03.2023

Просмотров: 313

Скачиваний: 4

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
      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. Для активно посещаемых проектов такое решение не подходит.