Добавлен: 31.03.2023
Просмотров: 56
Скачиваний: 1
Ruby on Rails является связкой которая облегчает разработку, развертывание и обслуживание веб-приложений. По сравнению с популярными средами разработки Java, PHP или .NET, – Rails работа избавляет от излишней трудоемкости. Rails-приложения выполняются с использованием архитектуры Модель-Представление-Контроллер (Model-View-Controller, MVC). Привычная Java-разработчикам среда выполнения, к примеру Tapestry или Struts, тоже основана на MVC. Время проведения разработки в Rails начинаеся уже с работающего приложения, в котором есть место для каждой части кода, и все части приложения стандартным образом взаимодействуют друг с другом. Все Rails-приложения имеют встроенное тестирование.
Поскольку данная связка рассчитана на более опытных разработчиков, имеющих значительный опыт в разработке сложных web-приложений, рассматриваться не будет.
Python - это динамически типизированный и объектно-ориентированный язык программирования высокого уровня. Высокоуровневое программирование подразумевает, что весь код, написанный на нем, может быть понят человеком, и согласно кодовой конвенции. Как и Java и C ++, Python также поддерживает объектно-ориентированное программирование.
Python создан Гвидо Ваном из Centrum Wiskunde & Informatica в Нидерландах и выпущен в 1991 году, несмотря на то что проект python был запущен 10 лет назад с момента его первого выпуска. Python был разработан как интерпретатор и преемник языка программирования ABC, который может обрабатывать исключения и взаимодействовать с операционной системой Amoeba.
Основные преимущества Python:
– Python очень легко выучить из-за его простого синтаксиса
– Python включает в себя меньшее количеств написанного кода
– Python имеет поддержку более тысячи библиотек
– Python язык программирования с открытым исходным кодом
– Используются отступы вместо скобок
Python поставляется с 2 версиями - Python версии 2.x (первая версия была выпущена в 2000 году) и Python версии 3.x(первая версия была выпущена в 2008 году), обе с открытым исходным кодом и оба бесплатны для использования. [7].
Python так же является масштабируемым языком и позволяет унаследовать огромное количество функций и типов данных, созданных на ruby, java C, C#, или C ++.
К недостаткам Python следует отнести высокую стоимость IDE разработки приложений, так как такие инструменты как PyDev на основе Eclipse, и PyCharm IDE на основе intellij idea в ознакомительном и ограниченном режиме имеют функционал чуть выше чем обычный текстовый редактор с подсветкой кода.
Язык программирования Java - разработана компанией Sun Microsystems, которую со временем купила компания Oracle. Этот язык написания программ принадлежит к объектно-ориентированным языкам программирования. Приложения, созданные на языке Java, в последствии преобразовываются в объектные байт-коды, что дает им возможность иметь универсальную совместимость, и применяться на компьютерах лю-бой архитектуры, благодаря поддержке виртуальной Java-машины.
Преимущество описанного метода функционирования приложений состоит в абсолютной независимости байт-кода, и от операционных систем, и от конфигурации оборудования. Это дает возможность запустить Java-приложение на любом устройстве, имеющем соответствующую виртуальную машину. Вторая важная особенность языка Java заключается в гибкости системы безопасности , при которой любое выполнение программного кода полностью контролируется виртуальной машиной. Любое действие, при попытке превышения полномочий, предусмотренных программой, немедленно прерывается.
Одним из недостатков применения виртуальной машины является уменьшение производительности, однако ее можно повысить при помощи некоторых усовершенствований, которые дают возможность увеличить скорость работы Java-приложение:
- использование технологий, которые позволяют транслировать байт-код параллельно с работой программы, с сохранением версии класса в машинном коде;
- распространенное применение платформенно-ориентированных кодов в стандартной библиотеке;
- аппаратные средства, которые обеспечивают более быстрое обрабатывание байт-кодов (к примеру Jazelle, при поддержке некоторых процессоров компании ARM).
PHP – это серверный язык сценариев общего назначения, использующий веб-сервер, предназначенный для создания динамических страниц и приложений. PHP как вариант веб-разработки является безопасным, быстрым и надежным вариантом, который предлагает большое количество преимуществ, чтобы быть доступным для многих людей. Следует обратить внимание на то, что сделало программирование PHP одним из наиболее распространенных языков программирования для веб-индустрии. Использование PHP в качестве языка имеет много преимуществ, некоторые из которых могут быть перечислены ниже.
– PHP поддерживает такие БД как MySQL, Oracle, Sybase и т.д.
– PHP совместим с серверами, такими как Apache, IIS и т.д.
– PHP работает на платформах, Windows, Linux и т.д.
– Использовать PHP для разработки очень просто из-за простых функций, методов и синтаксиса этого языка
– PHP также поддерживает систему управления базами данных и другие базы данных с открытым исходным кодом
– Помимо этого, PHP был совместим с программным обеспечением с открытым исходным кодом, таким как Drupal, Joomla, Typo3, Wordpress osCommerce и т. д.
Помимо традиционного PHP, здесь можно пользоваться Python с фреймворком Django, Java и Node.js, Ruby и так далее.
3. Описание структуры базы данных и ее функций.
Проанализировав ряд систем управления кинотеатра, определим следующие сущности, которые должна в себя включать Web-приложение:
- справочники фильмов, жанров, целевых аудиторий, залов;
- функции подбора наиболее популярных фильмов по жанрам;
- функцию подбора фильмов к уже выбранным;
- механизм покупки билетов и бронирования мест;
- механизм возврата диска, списания испорченных дисков;
- сбор статистической информации на основании трендов вышедших фильмах.
Рассмотрим подробнее сущности, касающиеся справочной информации.
Репертуар кинотеатра – основной продукт. Грамотно составленный репертуар повышает выгоду от заказа билета на фильмы на 20-40%. Очень важно учитывать все параметры фильма:
- Жанр (триллер, детектив, драма, комедия, мультфильм);
- Целевая аудитория
1) дети
2) подростки
3) взрослые
4) женщины
5) мужчины
- Возрастные ограничения
- Длительность фильма;
- Длительность проката;
- Оценка фильма (посещаемости кинотеатра);
- Предварительная оценка качества фильма в своём жанре (выставляется рейтинговыми организациями).
База данных была структурирована и приведена к третьей нормальной форме. В табл. 3.1 приведен полученный список таблиц, их названия и назначение.
Таблица 3.1
Таблицы БД системы кинотеатра
Таблица |
Описание |
AGE_RESTICTION |
Таблица возрастных ограничений |
DOLGNOST |
Таблица должностей |
FILM |
Таблица фильмов |
FILM_AUDIENCE |
Таблица целевых аудиторий |
FILM_GANR |
Связующая таблица жанров и фильмов |
GANR |
Таблица жанров |
DISK |
Таблица дисков |
DISK_F |
Таблица дисков и фильмов |
RENT |
Таблица брони и продажи билетов |
SOTRUDNIK |
Таблица сотрудников |
Структура каждой отдельной таблицы и функциональное назначение полей представлены в таблице 3.2.
Таблица 3.2 Структура таблиц. |
||
---|---|---|
Таблица |
Поле |
Описание |
AGE_RESTRICTION |
ID_AGE_RESTRICTION |
Идентификатор возрастных ограничений |
NAME_OF_AGE |
Название возрастных ограничений |
|
TIME_FROM |
Рекомендуемое время показа от |
|
TIME_TO |
Рекомендуемое время показа до |
|
DOLGNOST |
ID_DOLGNOST |
Идентификатор должности |
NAME |
Название должности |
|
FILM |
ID_FILM |
Идентификатор фильма |
NAME |
Название фильма |
|
DURATION |
Длительность фильма |
|
RATING_WORLD |
Рейтинг |
|
ID_AGE_RESTRICTION |
Идентификатор возрастных ограничений для фильма |
|
ID_FILM_AUDIENCE |
Идентификатор целевой аудитории для фильма |
|
DATE_ADD |
Дата добавления фильма |
|
IN_USE |
Указатель на то, что фильм в не снят с показов |
|
FILM_AUDIENCE |
ID_FILM_AUDIENCE |
Идентификатор целевой аудитории |
NAME_OF_AUDIENCE |
Название целевой аудитории |
|
TIME_FROM |
Рекомендуемое время показа от |
|
TIME_TO |
Рекомендуемое время показа до |
|
FILM_GANR |
ID_FILM_GANR |
Идентификатор жанра фильма |
ID_FILM |
Идентификатор фильма |
|
ID_GANR |
Идентификатор жанра |
|
GANR |
ID_GANR |
Идентификатор жанра |
NAME_OF_GANR |
Название жанра |
|
TIME_FROM |
Рекомендуемое время показа от |
|
TIME_TO |
Рекомендуемое время показа до |
|
ZAL |
ID_ZAL |
Идентификатор зала |
ROW_COUNT |
Количество рядов |
|
PLACE_COUNT |
Количество мест |
|
TYPE_ZAL |
Идентификатор фильмов на диске |
|
RENT |
ID_DISK |
Идентификатор зала |
ID_FILM |
Идентификатор фильма |
|
ID_RENT |
Идентификатор билета |
|
ID_DISK_F |
Идентификатор места |
|
ID_SOTRUDNIK |
Идентификатор сотрудника, продавшего билет или бронь |
|
DATE_S |
Дата/время начала сеанса |
|
DATE_E |
Дата/время конца сеанса |
|
SEANS |
Указатель на сам сеанс |
|
SOTRUDNIK |
ID_SOTRUDNIK |
Идентификатор сотрудника |
ID_DOLGNOST |
Идентификатор должности |
|
PASSWORD |
Пароль |
|
FIO |
ФИО |
|
LOGIN |
Логин |
MySQL – это полностью свободная связанная система контроля над базами данных. Над созданием, а также дальнейшим улучшением MySQL ведет работу корпорация под названием Oracle. Именно она получила право на ТМ с Sun Microsystems, довольно давно купившей MySQL AB (Швеция). Система обнародована не только под личной торговой лицензией, но и под лицензией GNU General Public. Создатели продолжают расширять количество функций, в соответствии с требованиями клиентов. Таким образом, практически изначально удалось запустить механизм синтеза[13].
Пластичность системы управления базами данных MySQL (или СУБД) обеспечена благодаря поддержке множественного числа различных таблиц: у клиентов есть возможность избрать как таблицы вариации MyISAM, которые поддерживают полнотекстовый поиск, так и вариант InnoDB, которые способны поддерживать переводы на базе конкретных отметок. Помимо этого, СУБД
MySQL поставляют с определенной разновидностью таблиц EXAMPLE. А те демонстрируют положения производства новеньких видов таблиц. Вследствие свободной проектировки и GPL-лицензированию в MySQL новенькие виды таблиц возникают на стабильной основе.
Общество создателей MySQL создало самые разные разделы кода, к примеру, Drizzle, MariaDB, и так далее. Разделы эти имели место к моменту слияния Sun Microsystems и Orade.
MySQL 5.1 двигается к образцу SQL:2003. MySQL 5.1 может предложить пользователям такие новшества:
Сегментация – разделение одной крупной таблицы на отдельные сегменты, расположенные в различных системах, базируясь на вычисленном клиентом функционале. Сегментация существенно увеличит отдачу; Изменения действий нескольких операторов, чтобы обеспечить рост соединимости с образцом SQL:2003; Каждострочное копирование, при нем в двоичный лог будут занесены лишь сведения о действительно переделанных строчках таблицы вместо настоящего запроса. Такое копирование стоит применять лишь для конкретных разновидностей sql-запросов; Вмонтированный планировщик регулярно производимых процессов. Согласно правилам, вписывание очередной задачи становится похоже на добавление триггера в таблицу; Вспомогательная подборка функционала для проработки XML, выполнение поддержки XPath; Новейшие инструменты диагностирования проблематики и программы для проверки эффективности. Расширение возможностей касательно контроля содержания лог-файлов, отныне их можно будет сохранять и в таблицах. Таких, как general_log или slow_log. Программа Mysqlslap разрешает выполнить специальное тестирование базы данных с фиксированием времени реагирования на любой из запросов; Чтобы сделать проще процесс модернизации, теперь есть специальная программа Mysql_upgrade. Она создана для проверки имеющихся таблиц на совместимость с последней версией. В случае необходимости, она проведет все требуемые исправления[14];
MySQL Cluster теперь производится, как отдельная программа, которая основывается на MySQL 5.1, дополнительно библиотека NDBCLUSTER;
Существенные перемены в работе MySQL Cluster. К примеру – сбережение табличной информации на диске; Возвращение к применению вмонтированной библиотеки Libmysqld, которой ранее не было в MySQL 5;
API для плагинов, позволяющее производить загрузку посторонних модулей, масштабирующих функционал (к примеру, расширенный поиск), без необходимости перезагружать сервер;
Сервер баз данных MYSQL доступен для скачивания на официальной странице сайта oracle.com. Существуют установочные файлы под любую платформу. Некоторые дистрибутивы Linux содержат в себе данный сервер баз данных.
Сервер баз данных MYSQL доступен для скачивания на официальной странице сайта oracle.com. Существуют установочные файлы под любую платформу. Некоторые дистрибутивы Linux содержат в себе данный сервер баз данных.
Рис 3.1 – скачка MySQL с сайта Oracle
Во время установки возникает необходимость:
- настройки порта рисунок 3.2 (а),
- выбора кодировки рисунок 3.2 (б),
- установки логина и пароля доступа к базе данных и ключевого пользователя «root» рисунок 3.2 (в).
Результат успешной установки показан на рисунке 3.2 (г). После этого становится доступным консольное приложение создания и редактирования базы данных MySQL. В данном приложении осуществляется создание и редактирование баз данных, сложных структурированных запросов, а также различных процедур и триггеров.
В новых версиях MySQL важно на этапе установки зафиксировать пароль пользователя root, так как он генерируется автоматически и передается пользователю через оконное сообщение.
После этого удалить или изменить пароль без переустановки базы данных невозможно.
Во время установки дистрибутива необходимо указать важные параметры, показанные на рисунке 3.3
а) б)
в) г)
Рис 3.2 – Установка дистрибутива СУБД MySQL
Существуют так же сборки для Web-разработчиков, которые автоматически устанавливают и конфигурируют веб-сервера.
Таковыми являются пакеты установки «Денвер», Wamp, EasyPhp и многие другие. Вся процедура установки сводится к двукликовому запуску данных приложений, в результате чего получается полный набор функций веб-разработчика.