Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
avs2 - пз.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
306.9 Кб
Скачать
  1. Структура решения

  1. Генерация html-страниц

    1. Начальной страницы приложения

    2. Страницы с формой аутентификации

    3. Страницы с формой регистрации

    4. Страницы для пользователя с записями

    5. Страницы администратора с записями

  2. Хранение данных и доступ к ним

  3. Обмен данными между клиентом и сервером

  4. Реализация логики приложения

    1. Регистрация пользователя

    2. Вход

    3. Добавление записи

    4. Просмотр всех записей

    5. Редактирование своих записей для пользователя

    6. Удаление своих записей для пользователя

    7. Удаление записей для администратора

    8. Удаление пользователей для администратора

  1. Обзор и анализ методов решения

    1. Генерация html-страниц

Под генерацией в данном случае понимается процесс формирования страниц с учетом конкретных ситуативных данных (данных аутентификации, содержания файлов на сервере и т. д.). Перед тем, как приступить к генерации, необходимо предварительно сверстать макеты всех типичных для приложения страниц. Вёрстка — процесс формирования страниц в текстовом либо визуальном редакторе, а также результат этого процесса, то есть собственно страницы.

Существует два принципиально различных подхода к вёрстке HTML-страниц.

  1. Табличная верстка. Элементы страницы помещаются в ячейки таблицы. В ячейках также могут быть вложенные таблицы для создания сложной структуры. Используются теги <table>,<tr>,<td>. Внешний вид элементов страницы задается с помощью соответствующих атрибутов (напр. font-size, color, text-align, wigth, height и т. д.).

Этот подход интуитивно более понятен, однако в этом случае вся нагрузка по оформлению страницы ложится на HTML-код, что делает его громоздким при описании сложных макетов.

  1. Блочная вёрстка. При использовании данного подхода структура страницы формируется из блоков, в качестве которых выступает тег <div>. С помощью стилей эти блоки позиционируются на странице определенным образом, формируя каркас, который уже затем наполняют содержимым.

Все параметры блока (размеры, расположение, отступы, оформление и т.п.) определяются с помощью CSS. Связь между элементами HTML и описаниями их стилей в CSS-файле устанавливается по значениям атрибутов class или id. Атрибут class определяет группу элементов с одинаковым стилем, атрибут id - уникальный элемент страницы.

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

После того, как верстка макетов страниц приложения завершена, можно приступать к генерации. Для генерации используются так называемые серверные скрипты, шлюзы или CGI-программы. CGI (от англ. Common Gateway Interface — «общий интерфейс шлюза») — стандарт интерфейса, используемого для связи внешней программы с веб-сервером. Он разработан таким образом, что может использовать любой язык программирования, способный работать со стандартным устройством ввода/вывода. Скрипт генерирует страницу в ответ на клиентский HTTP-запрос с учетом данных, пришедших в запросе. Рассмотрим некоторые наиболее актуальные языки и технологии, позволяющие писать серверные скрипты:

  1. PHP ­­­­­­­­­­- скриптовый язык общего назначения, интенсивно применяемый для разработки web-приложений. Интерпретируемый, с динамической типизацией. Данные HTTP-запросов доступны в суперглобальном ассоциативном массиве $_REQUEST. Также существуют специальные суперглобальные массивы для соответствующих типов запросов: $_GET и $_POST. Значения переменных доступны по их именам. Для манипуляций и хранения данных в течении сеанса используется массив $_SESSION. В настоящее время PHP поддерживается подавляющим большинством хостинг-провайдеров и является одним из лидеров среди языков, применяющихся для создания динамических web-сайтов.

Наиболее известные фрейворки - Phalcon, PHPixie, FatFree, Silex, Slim, Lithium.

  1. Язык программирования Python —мощный инструмент для создания программ самого разнообразного назначения. Интерпретируемый, с динамической типизацией.

Один из способов написания скрипта - использование модуля CGI. Он содержит класс FieldStorage, методы которого getfirst(name, default=None) и getlist(name) позволяют получить значения переданных HTTP-запросом переменных по их именам. Метод getfirst возвращает первое значение, getlist - список всех значений, связанных с данным именем.

Наиболее известный фреймворк - Django, используется в таких крупных и известных сайтах, как Instagram, Disqus, Mozilla, The Washington Times, Pinterest и др. Также популярны TurboGears, web2py.

  1. Ruby ­­- интерпретируемый высокоуровневый язык для быстрого и удобного объектно-ориентированного программирования. Класс стандартной библиотеки Net::HTTP позволяет производить все необходимые операции с HTTP-запросами. Однако достаточно сложен для освоения и менее производителен по сравнению со многими другими языками, применяемыми в веб-разработке.

Наиболее известный фреймворк - Ruby on Rails.

  1. Go (Golang) — компилируемый, многопоточный язык программирования, разработанный компанией Google. При разработке web-приложений используется механизм функций-обработчиков. Их аргументами функции являются ResponseWriter и Request. ResponseWriter – это интерфейс, который используется для формирования HTTP ответа, Request – представляет из себя HTTP запрос полученный сервером или предназначенный для отправки клиенту. Обработчики привязываются к "паттернам" - строковым образцам, которые могут появляться в адресной строке при работе приложения, что вызывает соответствующий обработчик.

Наиболее известные фреймворки - Revel, Beego, Gin.

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

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

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

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

Web-страница, как правило, состоит из трех основных частей: верхней части("хедера"), средней части(содержания или "контента") и нижней части ("футера"). Причем чаще всего изменяется содержание страницы, а хедер и футер не изменяются или изменяются незначительно. В связи с этим целесообразно было бы разделить генерацию любой страницы на три этапа.

Этапы генерации страницы:

  1. Генерация хедера

  2. Генерация контента (содержания)

  3. Генерация футера

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]