grails report, jeeconf 2012
DESCRIPTION
Groovy and Grails presentation on JEEConf 2012, May 19, Kiev, UkraineTRANSCRIPT
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
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?