grails report, jeeconf 2012

41
Grails Grails Священный грааль web-разрабочика на Java JEEConf, May 2012, Kiev 1 Groovy & Grails. Author: Sergiy Korzh (Wishpresent.com)

Upload: sergiy-korzh

Post on 02-Jul-2015

2.338 views

Category:

Technology


0 download

DESCRIPTION

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

TRANSCRIPT

Page 1: Grails report, JEEConf 2012

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

на Java

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

Page 2: Grails report, JEEConf 2012

• 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

[email protected]

http://twitter.com/korzhs

http://facebook.com/sergiy.korzh

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

Page 3: Grails report, JEEConf 2012

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

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

Page 4: Grails report, JEEConf 2012

- - 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

Page 5: Grails report, JEEConf 2012

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

5

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

Page 6: Grails report, JEEConf 2012

Всякие загадочные абревиатурыВсякие загадочные абревиатуры• 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

Page 7: Grails report, JEEConf 2012

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

Page 8: Grails report, JEEConf 2012

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

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

Page 9: Grails report, JEEConf 2012

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

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

Page 10: Grails report, JEEConf 2012

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

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

• Коллекции:

• Хеши:

Page 11: Grails report, JEEConf 2012

Groovy: closuresGroovy: closures

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

• Блок кода

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

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

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

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

Page 12: Grails report, JEEConf 2012

Groovy: closures 2Groovy: closures 2

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

Page 13: Grails report, JEEConf 2012

Groovy: syntax sugarGroovy: syntax sugar

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

Page 14: Grails report, JEEConf 2012

Groovy: more syntax sugarGroovy: more syntax sugar

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

Page 15: Grails report, JEEConf 2012

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

Page 16: Grails report, JEEConf 2012

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

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

Page 17: Grails report, JEEConf 2012

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

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

Page 18: Grails report, JEEConf 2012

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

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

Page 19: Grails report, JEEConf 2012

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

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

Page 20: Grails report, JEEConf 2012

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

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

Page 21: Grails report, JEEConf 2012

Wish-list: User CRUDWish-list: User CRUD

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

Page 22: Grails report, JEEConf 2012

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

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

Page 23: Grails report, JEEConf 2012

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

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

Page 24: Grails report, JEEConf 2012

Wishlist: Wish CRUDWishlist: Wish CRUD

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

Page 25: Grails report, JEEConf 2012

Wishlist: Domain class modificationsWishlist: Domain class modifications

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

Page 26: Grails report, JEEConf 2012

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

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

Page 27: Grails report, JEEConf 2012

Wishlist: Controller scaffoldingWishlist: Controller scaffolding

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

Page 28: Grails report, JEEConf 2012

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

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

Page 29: Grails report, JEEConf 2012

Wish-list: View definitionWish-list: View definition

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

Page 30: Grails report, JEEConf 2012

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

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

Page 31: Grails report, JEEConf 2012

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

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

Page 32: Grails report, JEEConf 2012

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

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

Page 33: Grails report, JEEConf 2012

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

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

Page 34: Grails report, JEEConf 2012

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

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

Page 35: Grails report, JEEConf 2012

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

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

Page 36: Grails report, JEEConf 2012

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

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

Page 37: Grails report, JEEConf 2012

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

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

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

Page 38: Grails report, JEEConf 2012

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

Page 39: Grails report, JEEConf 2012

Резюмируем: почему именно Резюмируем: почему именно 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 – скорее всего этого не существует!

Page 40: Grails report, JEEConf 2012

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

Page 41: Grails report, JEEConf 2012

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

Questions?Questions?