Play!2 Framework, презентация. Часть1.pptx
- Количество слайдов: 26
Презентация Введение в веб-фреймворк Play! Framework
Фреймворк. • Фреймворк веб-приложений – программный фреймворк, который предназначен для поддержки разработки и развития динамических веб-сайтов, веб-приложений, веб-сервисов и т. д. • В свою очередь, под программным фреймворком понимают реальную структуру или концепцию, которая служит помощью в поддержке и руководством разработки. Может включать вспомогательные программы, библиотеки кода, язык сценариев и другое ПО, облегчающее разработку и объединение разных компонентов большого программного проекта.
Play! Framework. • Play! Это открытый фреймворк для вебприложений, написанный на ЯП Scala и Java с использованием набора инструментов Akka (toolkit Akka), который следует шаблону проектирования MVC (model–view –controller). • Присутствует поддержка языков Java и Scala (но по многим сведениям в сети она актуальна лишь в первой версии Play!).
• Разберемся с понятием MVC. • Шаблон проектирования MVC предполагает разделение данных приложения, пользовательского интерфейса и управляющей логики на три отдельных компонента: Модель, Представление и Контроллер – таким образом, что модификация каждого компонента может осуществляться независимо.
Кратко о каждом компоненте на следующем слайде.
• Модель (Model) • Модель отвечает за информацию (данные) приложения и правила управления этими данными. Модели в основном используется для управления соответствующей таблицей базы данных и правил взаимодействия с ней. В большинстве случаев, каждая таблица в базе данных будет соответствовать одной модели в вашем приложении. Основная часть бизнес-логики приложения будет сосредоточена в моделях. • Представление (View) • Представление отвечает за пользовательский интерфейс вашего приложения. Чаще всего это HTML файлы. Этот слой отвечает за вывод данных в веб-браузер или другой инструмент который обращается к вашему приложению. • Контроллер (Controller) • Контроллеры обеспечивают обмен данными между моделью и представлением. Контроллеры отвечают за обработку входящих запросов от веб-браузера, запрашивают данные у модели и передают эти данные в представление для вывода.
Play! 2 Framework. Typesafe stack. Быстрый старт. • Фреймворк можно получить с главного сайта (https: //www. playframework. com), перейдя по ссылке https: //www. playframework. com/download. На данный момент, авторы вместе с фреймворком Play! продвигают платформу Typesafe Activator. Таким образом, этот фреймворк можно получить, скачав Typesafe Activator по ссылке https: //typesafe. com/platform/getstarted.
• Информация о Activator: Typesafe Activator - инструментарий, имеющий браузерную основу, который содержит готовые шаблоны и начальные примеры для работы или ознакомления с той или технологией. Он создан, чтобы ускорить понимание технологических решений и приобретение навыков, необходимых для развития реактивных приложений, которые в любое время позволяют управлять всем жизненным циклом разработки приложений.
Платформа Typesafe. • Typesafe (или полное имя Typesafe Reactive Platform) – программная платформа, позволяющая создавать «реактивные приложения» , состоящая из Play! Framework, Akka Middle. Ware, ЯП Scala и Spark, которая к тому же может взаимодействовать с различными IDE (Eclipse, Scala IDE) и инструментами – sbt (simple build tool). • Реактивное (отзывчивое? ) программирование - принцип программирования, по которому зависящие данные (потоки данных) меняются от других данных; по задумке авторов должно обладать повышенной гибкостью, масштабируемостью (работа под большой нагрузкой) и отказоустойчивостью
Первый старт. • Прежде запустить activator от typesafe – добавьте в глобальные переменные среды пути к JDK, JRE (не ниже 6 версии). Таким образом, можно получить доступ к средствам java и javac прямо с консоли или терминала. • Произведите установку Scala binaries. • Для удобства можно добавить activator в глобальные переменные среды Windows, чтобы в дальнейшем можно было запускать activator из командной строки.
Создание нового проекта. • Для того, чтобы создать голый (пустой, чистый) проект для разработки на языке Scala , вводим в командной строке (в случае работы с Windows, советую запускать командную строку от имени администратора): • $ activator new name_project play-scala • Или для работы с Java : • $ activator new name_project play-java • В случае с Windows, в директории, на которую вы указывали в cmd, появится новая директория – проект с названием “name_project”.
• (примечание с сайта playframework) - Note that choosing a template for either Scala or Java at this point does not imply that you can’t change language later. For example, you can create a new application using the default Java application template and start adding Scala code whenever you like. • Запустим созданный только что проект без GUI командой: • $ activator run • Этой командой activator скачает необходимые инструменты для развертки проекта –например, sbt, скомпилирует исходные файлы на Scala и т. д. • При успешном запуске проекта, обращение к http: //localhost: 9000/ в браузере приведет к следующей странице:
Структура созданного проекта.
• Разберемся как данное приложение показывает эту страницу. • Главная точка входа вашего приложения находится в файле conf/routes. Он описывает все допустимые URL приложения. Ключевое выражение в новом routes это • GET / Application. index • Его можно интерпретировать так - когда сервер получит запрос GET к пути / (по умолчанию index), то play должен вызвать метод Application. index. Файл Application должен находиться в app/controllers/Application. scala.
• Таким образом, Play вызвал метод application. index, имеющий следующую реализацию Действие данного метода заключается в обработчке http-запроса и возвращении httpответа веб-клиенту, используя шаблон (template) для заполнения его контентом. В данном случае, шаблон описан в app/views/index. scala. html и компилируется как Scala функция.
Шаблоны Play Scala. • Шаблоны Play Scala представляют собой обычный текст, который содержит небольшие вставки Scalaкода. Пример шаблона: “<template-name>. scala. <content-type> ”. • Система шаблонов была построена так, чтобы было комфортно работать front-end разработчикам, как с обычными html страницами. • Шаблоны компилируются как обычные Scala функции со следующими изменениями в имени файла. Если вы создадите шаблон views/Application/index. scala. html , он будет генерировать класс views. html. Application. index c методом apply().
• Таким образом, если внимательно посмотреть на реализацию функцию Application. index, можно заметить, что она вызывает функцию index из класса, скомпилированного из шаблона app/view/index. scala. html. • Рассмотрим код шаблонов: • Index. scala. html:
main. scala. html : В первом случае определяется аргумент message, вызывается функция main с параметром “Welcome to Play” и параметром в виде html страницы, которая будет возвращена функцией play 20. welcome (см. шаблон на этом слайде). Несложно заметить, что весь синтаксис шаблонов связан с магической “@”.
Синтаксис шаблонов Play! Scala-шаблон использует специальный одиночный символ “@”. Каждый раз, когда встречается данный символ, он означает начало динамической инструкции. Причем, вы не обязаны явно закрывать блок кода – конец инструкции будет определен из вашего кода (примеры из документации):
Поскольку, “@” – специальный символ, то для написания символа “@” как текста в статической странице используют “@@”. Как было сказано ранее, шаблон подобен функции. А каждая функция может иметь набор аргументов. Таким образом, в начале Scalaшаблона можно определить список аргументов : @(message: String, id: Int, … и т. д. ) (else. Param: Some. Type) Просмотрите main. scala. html.
Использование @ Допустимо применение спец. символа для итераций: If-блоков: объявления блоков многоразового применения:
переменных многоразового использования (с помощью defining): импорта: и т. д. За полным перечнем обращаться к документации: https: //www. playframework. com/documentatio n/2. 0/Scala. Templates
Actions, Controllers and Results Что такое Action ? Большинство запросов, полученных Playприложением обрабатывается с помощью Action. play. api. mvc. Action это основная (play. api. mvc. Request => play. api. mvc. Result) функция, которая принимает запрос и генерирует результат для отправки клиенту. Action возвращает значение play. api. mvc. Result , представляющее собой HTTP ответ, для отправки веб-клиенту. В примерах ранее Ok строит 200 OKответ, содержащий text/plain.
Play!2 Framework, презентация. Часть1.pptx