Grails report, JEEConf 2012

Post on 02-Jul-2015

2,338 views 0 download

description

Groovy and Grails presentation on JEEConf 2012, May 19, Kiev, Ukraine

transcript

GrailsGrailsСвященный грааль web-разрабочика

на Java

JEEConf, May 2012, Kiev 1Groovy & Grails. Author: Sergiy Korzh (Wishpresent.com)

• 1998 Korzh.comРазработка и продажа software. Компоненты для Delphi и .NET: Localizer, EasyQuery.NET

• 2005 BeaconCRM/CMS web-applicationSpring, Sitemesh, JDBC

• 2011 Wishpresent.comsocial wish-listGroovy & GrailsСергей Корж

http://korzh.com

http://wishpresent.com

sergiy@korzh.com

http://twitter.com/korzhs

http://facebook.com/sergiy.korzh

JEEConf, May 2012, KievGroovy & Grails. Author: Sergiy Korzh (Wishpresent.com) 2

Yet another one Java web framework?Yet another one Java web framework?

JEEConf, May 2012, KievGroovy & Grails. Author: Sergiy Korzh (Wishpresent.com) 3

- - the search is overthe search is over• Язык Groovy == Java++• Полная соместимость с Java (binary & source)• All-inclusive: библиотека, web-сервер, БД, IDE (STS)• Плагины• Сильное коммюнити• Надежный вендор

Grails == SpringSource == VMWare

JEEConf, May 2012, KievGroovy & Grails. Author: Sergiy Korzh (Wishpresent.com) 4

JEEConf, May 2012, KievGroovy & Grails. Author: Sergiy Korzh (Wishpresent.com)

5

НЕ изобретаем велосипед!

Всякие загадочные абревиатурыВсякие загадочные абревиатуры• CC - Convention over configuration

• MVC - Model-View-Controller

• DI, IoC - Dependency Injection, Inversion of control

• DSL - Domain specific language

• ORM - Object relational mapping

• DDD - Domain Driven Design

JEEConf, May 2012, KievGroovy & Grails. Author: Sergiy Korzh (Wishpresent.com) 6

Groovy: Java on steroidsGroovy: Java on steroids• Динамический язык для JVM

• Foo.java -> Foo.groovy == OK

• Все библиотеки доступные для Java будут работать в

Groovy

• Очень легкий для изучения для Java программистов

• Меньше кода, но он более выразительный и понятный

JEEConf, May 2012, KievGroovy & Grails. Author: Sergiy Korzh (Wishpresent.com) 7

““Hello world” – Java wayHello world” – Java way

JEEConf, May 2012, KievGroovy & Grails. Author: Sergiy Korzh (Wishpresent.com) 8

““Hello world” – Groovy wayHello world” – Groovy way

JEEConf, May 2012, KievGroovy & Grails. Author: Sergiy Korzh (Wishpresent.com) 9

Groovy: Groovy: базовые конструкциибазовые конструкции

JEEConf, May 2012, KievGroovy & Grails. Author: Sergiy Korzh (Wishpresent.com) 10

• Коллекции:

• Хеши:

Groovy: closuresGroovy: closures

JEEConf, May 2012, KievGroovy & Grails. Author: Sergiy Korzh (Wishpresent.com) 11

• Блок кода

• Может быть передан как аргумент в функцию

• Может принимать параметры

• Может возвращать значение

• Может быть сам возвращен

Groovy: closures 2Groovy: closures 2

JEEConf, May 2012, KievGroovy & Grails. Author: Sergiy Korzh (Wishpresent.com) 12

Groovy: syntax sugarGroovy: syntax sugar

JEEConf, May 2012, KievGroovy & Grails. Author: Sergiy Korzh (Wishpresent.com) 13

Groovy: more syntax sugarGroovy: more syntax sugar

JEEConf, May 2012, KievGroovy & Grails. Author: Sergiy Korzh (Wishpresent.com) 14

Grails: folder structureGrails: folder structure

JEEConf, May 2012, KievGroovy & Grails. Author: Sergiy Korzh (Wishpresent.com) 15

grails-app conf - конфигурационные файлы controllers - контроллеры domain - доменные классы i18n - ресурсы для локализации services - классы сервисов taglib - библиотеки тегов views - views (GSP файлы) layouts - макетыlib - дополнительные либы (jar файлы)src - дополнительные классы java на Java groovy на Groovytest web-app - статика, скрипты, JEE configuration files css images js WEB-INF

Grails: Grails: создание нового проектасоздание нового проекта

JEEConf, May 2012, KievGroovy & Grails. Author: Sergiy Korzh (Wishpresent.com) 16

Wishlist: Wishlist: Класс Класс UserUser

JEEConf, May 2012, KievGroovy & Grails. Author: Sergiy Korzh (Wishpresent.com) 17

Wishlist: Wishlist: Класс Класс WishWish

JEEConf, May 2012, KievGroovy & Grails. Author: Sergiy Korzh (Wishpresent.com) 18

Wishlist: Wishlist: создание контроллеровсоздание контроллеров

JEEConf, May 2012, KievGroovy & Grails. Author: Sergiy Korzh (Wishpresent.com) 19

Wish-list: run-app: voilWish-list: run-app: voilà!!

JEEConf, May 2012, KievGroovy & Grails. Author: Sergiy Korzh (Wishpresent.com) 20

Wish-list: User CRUDWish-list: User CRUD

JEEConf, May 2012, KievGroovy & Grails. Author: Sergiy Korzh (Wishpresent.com) 21

Wish-list: User CRUD 2Wish-list: User CRUD 2

JEEConf, May 2012, KievGroovy & Grails. Author: Sergiy Korzh (Wishpresent.com) 22

Wish-list: User CRUD 3Wish-list: User CRUD 3

JEEConf, May 2012, KievGroovy & Grails. Author: Sergiy Korzh (Wishpresent.com) 23

Wishlist: Wish CRUDWishlist: Wish CRUD

JEEConf, May 2012, KievGroovy & Grails. Author: Sergiy Korzh (Wishpresent.com) 24

Wishlist: Domain class modificationsWishlist: Domain class modifications

JEEConf, May 2012, KievGroovy & Grails. Author: Sergiy Korzh (Wishpresent.com) 25

Wishlist: Domain class modifications 2Wishlist: Domain class modifications 2

JEEConf, May 2012, KievGroovy & Grails. Author: Sergiy Korzh (Wishpresent.com) 26

Wishlist: Controller scaffoldingWishlist: Controller scaffolding

JEEConf, May 2012, KievGroovy & Grails. Author: Sergiy Korzh (Wishpresent.com) 27

Wish-list: …and action!Wish-list: …and action!

JEEConf, May 2012, KievGroovy & Grails. Author: Sergiy Korzh (Wishpresent.com) 28

Wish-list: View definitionWish-list: View definition

JEEConf, May 2012, KievGroovy & Grails. Author: Sergiy Korzh (Wishpresent.com) 29

Wish-list: View definition 2Wish-list: View definition 2

JEEConf, May 2012, KievGroovy & Grails. Author: Sergiy Korzh (Wishpresent.com) 30

Wish-list: show object listWish-list: show object list

JEEConf, May 2012, KievGroovy & Grails. Author: Sergiy Korzh (Wishpresent.com) 31

Wish-list: show object list 2Wish-list: show object list 2

JEEConf, May 2012, KievGroovy & Grails. Author: Sergiy Korzh (Wishpresent.com) 32

Подключаем плагиныПодключаем плагины

JEEConf, May 2012, KievGroovy & Grails. Author: Sergiy Korzh (Wishpresent.com) 33

Исправления в классе Исправления в классе UserUser

JEEConf, May 2012, KievGroovy & Grails. Author: Sergiy Korzh (Wishpresent.com) 34

Добавляем пользователя и рольДобавляем пользователя и роль

JEEConf, May 2012, KievGroovy & Grails. Author: Sergiy Korzh (Wishpresent.com) 35

Добавляем секюрность в контроллерДобавляем секюрность в контроллер

JEEConf, May 2012, KievGroovy & Grails. Author: Sergiy Korzh (Wishpresent.com) 36

Voila:Voila: теперь у нас есть теперь у нас есть securitysecurity

JEEConf, May 2012, KievGroovy & Grails. Author: Sergiy Korzh (Wishpresent.com) 37

А на самом деле мы обратились к /wish/mylist/

Grails 2.0 Grails 2.0 - что новенького?- что новенького?

JEEConf, May 2012, KievGroovy & Grails. Author: Sergiy Korzh (Wishpresent.com) 38

• Новая консоль команд• Новый reloading agent• Новая страница test report• Улучшенная страница сообщения об

ошибках• H2 database• Groovy 1.8• Static resources

Резюмируем: почему именно Резюмируем: почему именно Grails?Grails?

JEEConf, May 2012, KievGroovy & Grails. Author: Sergiy Korzh (Wishpresent.com) 39

• Работает везде где доступна Java• Надежный вендор

SpringSource, он же VMWare

• Берем самое лучшее! Spring + Hibernate + SiteMesh + Eclipse + … да что угодно еще

• All-inclusive пакетНачать разработку можно скачав один zip файл

• Язык GroovyСущественное ускорение разработки. Прост в освоении для любого вменяемого Java программера

• Расширябельность (плагины)Если вы не нашли для чего-то плагин под Grails – скорее всего этого не существует!

Grails LinksGrails Links

JEEConf, May 2012, KievGroovy & Grails. Author: Sergiy Korzh (Wishpresent.com) 40

• Grails: http://grails.org/

• Groovy: http://groovy.codehaus.org/

• SpringSource: http://www.springsource.com/

• Spring Tool Suite: http

://www.springsource.com/developer/sts

JEEConf, May 2012, KievGroovy & Grails. Author: Sergiy Korzh (Wishpresent.com) 41

Questions?Questions?