Базы данных.
База данных представляет собой набор информации.
-
MySQL: одна из самых популярных в мире баз данных с открытым исходным кодом.
-
MariaDB: сделано оригинальными разработчиками MySQL. MariaDB также становится очень популярным в качестве сервера базы данных с открытым исходным кодом.
-
MongoDB: база данных следующего поколения, которая позволяет создавать приложения как никогда прежде.
-
Redis: хранилище структуры данных в памяти с открытым исходным кодом, используемое в качестве базы данных, кэша и посредника сообщений.
-
PostgreSQL: мощная система объектно-реляционных баз данных с открытым исходным кодом.
CSS препроцессоры.
CSS препроцессор - язык сценариев, который расширяет CSS, а затем компилирует его в обычный CSS.
-
Sass: очень современное, стабильное и мощное расширение CSS профессионального уровня.
-
Less: позиционируется как расширение CSS, которое также обратно совместимо с CSS. Это делает изучение Less легким и, в случае сомнений, позволяет вернуться к CSS.
-
Stylus: новый язык, обеспечивающий эффективный, динамичный и выразительный способ создания CSS. Поддержка как синтаксиса с отступом, так и обычного стиля CSS.
Web-серверы.
Web-сервер, который конечном итоге используется для web-приложений, обычно зависит от комбинации личных предпочтений, функциональности или ранее существовавшей инфраструктуры. Nginx и Apache являются двумя наиболее широко используемыми web-серверами, однако есть и другие варианты:
-
Nginx: открытый и высокопроизводительный web-сервер. Хорошо обрабатывает статическое содержимое и имеет небольшой вес.
-
Apache: в настоящее время работает почти на 50% всех сайтов. Имеет большое сообщество и большой выбор модулей.
-
IIS: расширяемый web-сервер, созданный Microsoft. Предлагает отличную безопасность и корпоративную поддержку, поэтому не является открытым исходным кодом.
-
Caddy: относительно новый web-сервер. Это web-сервер с открытым исходным кодом, HTTP/2 с автоматическим HTTPS.
Локальные сервера (Dev среда разработки).
В зависимости от того, какую ОС использует компьютер, к которому у есть доступ, может потребоваться запустить быструю локальную среду разработки. Существует множество бесплатных утилит, которые объединяют Apache, mySQL, phpmyAdmin и т.д. вместе. Это может быть быстрый способ проверить что-то на вашей локальной машине. У многих из них есть портативные версии [2].
Web-приложения имеют архитектурные, технологические и пользовательские особенности:
-
web-приложения должны развертываться очень быстро, и требования к ним постоянно меняются в ходе этапа разработки;
-
все более частой практикой в web-разработке становится замена документов на реальные прототипы приложения;
-
раннее подключение конечных пользователей к тестированию и развитию web-приложения;
-
в то время как при разработке обычных приложений создается только одна версия приложения, которая удовлетворяет всем заданным требованиям, для web-приложений все более частой (и желательной) становится публикация в web-сети приложения, которое еще не удовлетворяет всем заданным требованиям;
-
получение ранних отзывов пользователей становится все более важным для разработки web-приложения, а цикл развития действительно начинает рассматриваться в качестве реальной возможности для улучшения web-приложения, а не как дополнительная трата времени на доведение приложения до рабочего состояния;
-
работа по проектированию web-приложений делится на проектирование данных и проектирование навигации.
Разработка web-приложений включает специфические процессы:
-
web-приложения являются специальным видом обычных программных приложений, и поэтому web-инженерия может рассматриваться в качестве специальной разновидности программной инженерии;
-
разработка приложений для web-сети предполагает использование нескольких хорошо определенных правил и соглашений, которые предоставляют стабильно работающую, устойчивую и масштабируемую среду разработки и выполнения;
-
существуют специальные процессы разработки, которые учитывают специфические возможности web-приложений.
Модель жизненного цикла современных web- приложений показана на Рисунке 14.
Рисунок 14 - Модель жизненного цикла современных web- приложенийОсновное различие данной модели от модели разработки обычного ПО заключается в понимании развертывания приложения не как вида деятельности (работы), а как перехода между работами.
В web-сети развертывание приложения для его пользователей действительно не является трудоемкой работой: в связи с централизованной архитектурой обычных web-приложений, отсутствием специального кода приложения на стороне пользователей, использованием браузера в качестве среды выполнения работа по развертыванию web- приложения в значительной степени облегчается и ускоряется.
Данная модель предлагает явное соединение работы по поддержке и развитию с анализом требований. Именно этот переход характеризует модель, он создает второй цикл модели, который включает анализ требований. Данный цикл называется «Циклом развития». Первый цикл связывает проектирование, реализацию, тестирование и развитие. Данный цикл называется «Цикл построения и проверки». Такие два цикла соответствуют двум этапам, которые характерны для современных web-приложений: офлайн-разработка и онлайн-разработка. Офлайн-разработка заключается в создании web-приложения в среде разработки, например, Visual Studio без использования реального web-сервера. Разработка в режиме онлайн выполняется после переноса web-приложения под управление реального web-сервера: создание виртуального каталога, файлов настройки, управление web-сервером.
Для реализации серверной части были использованы программные продукты:
-
Вэб-сервер Apache 2.4;
-
PHP 5.5;
-
MySql 5.6;
-
phpMyAdmin;
-
PhpStorm 2022.1.1.
Вэб-сервер Apache 2.4.
Веб-сервер работает в качестве «посредника» между пользователем и физическим сервером. При получении запроса от посетителя он ищет необходимую страницу в каталоге с сайтом и отправляет её в ответ. Браузер принимает полученный файл, обрабатывает его и отображает на экране посетителя.
Передача информации веб-сервера выполняется по протоколу HTTP (HyperText Transfer Protocol), изначально созданного для работы с HTML-страницами.Apache – это свободное программное обеспечение для размещения веб-сервера. Он хорошо показывает себя в работе с масштабными проектами, поэтому заслуженно считается одним из самых популярных веб-серверов.Apache состоит из ядра и динамической модульной системы. Параметры системы изменяются с помощью конфигурационных файлов.Ядро Apache разработано Apache Software Foundation на языке C. Основные функции — обработка конфигурационных файлов, протокол HTTP/HTTPS и загрузка модулей.
Модуль – отдельный файл, подключение которого расширяет изначальный функционал ядра. Они могут включаться в состав ПО при первоначальной установке или подгружаться позже через изменение конфигурационного файла. Большинство из них отвечает за определенный аспект обработки клиентского запроса – поддержку различных языков программирования, безопасность, кэширование, аутентификацию и т.д.PHP 5.5.
PHP — скриптовый язык общего назначения, интенсивно применяемый для разработки веб-приложений.Язык определяется наличием большого набора встроенных средств и дополнительных модулей для разработки веб-приложений. Основные из них: -
автоматическое извлечение POST- и GET-параметров, а также переменных окружения веб-сервера в предопределённые массивы;
-
взаимодействие с большим количеством различных систем управления базами данных через дополнительные модули;
-
автоматизированная отправка HTTP-заголовков;
-
работа с HTTP-авторизацией;
-
работа с cookies и сессиями;
-
работа с локальными и удалёнными файлами, сокетами;
-
обработка файлов, загружаемых на сервер;
-
работа с XForms.
Синтаксис PHP подобен синтаксису языка Си. Некоторые элементы, такие как ассоциативные массивы и цикл foreach, заимствованы из Perl.
Для написания простейшего скрипта не требуется описывать какие-либо переменные, используемые модули и т. п.
MySql 5.6.
MySQL — свободная реляционная система управления базами данных. Разработку и поддержку MySQL осуществляет корпорация Oracle.MySQL является решением для малых и средних приложений. Входит в состав серверов WAMP, AppServ, LAMP и в портативные сборки серверов Денвер, XAMPP. Обычно MySQL используется в качестве сервера, к которому обращаются локальные или удалённые клиенты, однако в дистрибутив входит библиотека внутреннего сервера, позволяющая включать MySQL в автономные программы. Ветка MySQL 5.6 базируется на невыпущенной серии MySQL 5.5 и содержит ряд значительных улучшений, связанных с повышением масштабируемости и производительности, среди которых: