Добрый день!
Не так давно, мне потребовался инструмент или фреймворк, для того чтобы в краткие сроки, создать небольшой сайт — витрину. Особых требований не было. Собственно, сама витрина и простейшая админка, с возможностью подредактировать параметры публикуемого контента. Главным требованием была скорость. Нужно было сделать это все за 1-2 дня, с учетом необходимости верстки дизайна.
Мои метания в поисках инструмента для реализации этого проекта прекратились когда мой френд tonyvelichko кинул мне ссылку на playframework.org
После просмотра демо-видео, мной овладел определенный скепсис, так как обычно подобные «волшебные» решения либо не работают, либо работают плохо. Однако этот инструмент работает. И работает хорошо!
Через час, после знакомства с фреймворком, я понял что лучше инструмента для моей задачи я не найду.
Почему?
Внутри фреймворка находится embeded web-сервер и кастомный classloader. Что нам это дает? В первую очередь запуск проекта без предварительной настройки томкэтов итд + перекомпиляция исходных кодов на лету. То есть добавили новый обработчик, обновили страницу — он подхватывается. Исключения надо сделать для прекомпиленных ресурсов: плагинов, библиотек, итд. При добавлении библиотеки, приложение необходимо перезапускать
Хотите поддержку БД? Ок, вот вам embeded JPA(Hibernate), основанный на настройку через аннотации. Плюс разработанный супер-класс для бинов, позволяющий свести заморочки с EntityManager к нулю
Хотите лог? Ок, пишите Logger.error(throwable, String). log4j уже настроили за вас.
Хотите валидацию форм? Пожалуйста, формы могут подхватывать аннотации полей бинов.
Хотите админку? Не вопрос, одной строчкой в конфиг-файле подключается модуль CRUD, который предоставляет интерфейс для редактирования объектов, хранящихся в БД, при этом имеет большие возможности для кастомизации представлений атрибутов объекта итд
Хотите проверку безопасности? Импортируем модуль security и описываем сам процесс логина — проверку пароля итд. Несложно.
Основа движка — Groovy.
Много возможностей, построение логических условий, инклюды других шаблонов, объявление переменных.
Движок умеет формировать урлы для ajax-запросов к конкретному контроллеру, есть тэг #{form} который сам пропишет нужный экшен и.т.д.
Уже существует множество сторонних плагинов, позволяющих, к примеру, интегрироваться с MongoDB, GAE итд
полный список официально опубликованных плагинов содержится на странице www.playframework.org/modules
Существует режим запуска в режиме тестирования, автоматическое выполнение ряда тестов, удобный интерфейс тестирования
Данная статья, ни в коем случае не претендует на полный обзор фреймворка. Это скорее попытка зацепить, вызвать интерес к симпатичному и удобному инструменту веб-разработки на Java. А от роста сообщества, конечный продукт только выиграет =)
Любые уточнения, советы и дополнения приветствуются. Возможно на хабре уже есть любители этого фреймворка?
Let's Play!
Не так давно, мне потребовался инструмент или фреймворк, для того чтобы в краткие сроки, создать небольшой сайт — витрину. Особых требований не было. Собственно, сама витрина и простейшая админка, с возможностью подредактировать параметры публикуемого контента. Главным требованием была скорость. Нужно было сделать это все за 1-2 дня, с учетом необходимости верстки дизайна.
Мои метания в поисках инструмента для реализации этого проекта прекратились когда мой френд tonyvelichko кинул мне ссылку на playframework.org
После просмотра демо-видео, мной овладел определенный скепсис, так как обычно подобные «волшебные» решения либо не работают, либо работают плохо. Однако этот инструмент работает. И работает хорошо!
Через час, после знакомства с фреймворком, я понял что лучше инструмента для моей задачи я не найду.
Почему?
Фреймворк заточен на то чтобы как можно быстрее начать разрабатывать и при этом сразу видеть промежуточный результат
Внутри фреймворка находится embeded web-сервер и кастомный classloader. Что нам это дает? В первую очередь запуск проекта без предварительной настройки томкэтов итд + перекомпиляция исходных кодов на лету. То есть добавили новый обработчик, обновили страницу — он подхватывается. Исключения надо сделать для прекомпиленных ресурсов: плагинов, библиотек, итд. При добавлении библиотеки, приложение необходимо перезапускать
Фреймворк уже включает в себя инструменты первой необходимости и позволяет не тратить времени на их первоначальную настройку
Хотите поддержку БД? Ок, вот вам embeded JPA(Hibernate), основанный на настройку через аннотации. Плюс разработанный супер-класс для бинов, позволяющий свести заморочки с EntityManager к нулю
Хотите лог? Ок, пишите Logger.error(throwable, String). log4j уже настроили за вас.
Хотите валидацию форм? Пожалуйста, формы могут подхватывать аннотации полей бинов.
Хотите админку? Не вопрос, одной строчкой в конфиг-файле подключается модуль CRUD, который предоставляет интерфейс для редактирования объектов, хранящихся в БД, при этом имеет большие возможности для кастомизации представлений атрибутов объекта итд
Хотите проверку безопасности? Импортируем модуль security и описываем сам процесс логина — проверку пароля итд. Несложно.
Симпатичный template-engine
Основа движка — Groovy.
Много возможностей, построение логических условий, инклюды других шаблонов, объявление переменных.
Движок умеет формировать урлы для ajax-запросов к конкретному контроллеру, есть тэг #{form} который сам пропишет нужный экшен и.т.д.
Фреймворк опенсорсный и поддерживает сторонние плагины.
Уже существует множество сторонних плагинов, позволяющих, к примеру, интегрироваться с MongoDB, GAE итд
полный список официально опубликованных плагинов содержится на странице www.playframework.org/modules
TDD
Существует режим запуска в режиме тестирования, автоматическое выполнение ряда тестов, удобный интерфейс тестирования
Краткое послесловие
Данная статья, ни в коем случае не претендует на полный обзор фреймворка. Это скорее попытка зацепить, вызвать интерес к симпатичному и удобному инструменту веб-разработки на Java. А от роста сообщества, конечный продукт только выиграет =)
Любые уточнения, советы и дополнения приветствуются. Возможно на хабре уже есть любители этого фреймворка?
Let's Play!