+ All Categories
Home > Software > Grails for bored java developers by Emil Doychev

Grails for bored java developers by Emil Doychev

Date post: 22-Jan-2018
Category:
Upload: nayden-gochev
View: 307 times
Download: 1 times
Share this document with a friend
28
Grails for Bored Java Developers Emil Doychev 22.11.2016, Hotel Vitosha, Sofia, Bulgaria
Transcript
Page 1: Grails for bored java developers by Emil Doychev

Grails for Bored Java

DevelopersEmil Doychev

22.11.2016, Hotel Vitosha, Sofia, Bulgaria

Page 2: Grails for bored java developers by Emil Doychev

Grails от отегчен Java

разработчикЕмил Дойчев

22.11.2016, Хотел Витоша, София

Page 3: Grails for bored java developers by Emil Doychev

Кой съм аз?

University of Plovdiv

e-mial: [email protected]

LinkedIn: www.linkedin.com/in/edoychev

Емил Дойчев

Page 4: Grails for bored java developers by Emil Doychev

Защо Grails?

Java Web Frameworks:

Struts / Struts 2

JSF

Spring MVC

GWT

Alpha 5 (A5)

Page 5: Grails for bored java developers by Emil Doychev

Пример

Page 6: Grails for bored java developers by Emil Doychev

Какво е Grails?

Вдъхновен от Ruby on Rails

Идеите на Rails чрез Spring & Hibernate

Чрез нов динамичен език – Groovy

Groovy on Rails = Grails

Термините на Ruby

Scaffolding

Convention over Configuration

Проблеми

Rails не е Java

Page 7: Grails for bored java developers by Emil Doychev

Версиите на Grails

1.x

Начало 29.03.2006

Версия 1.0 – 18.02.2008

Последна версия 1.3.9

2.x

Groovy 1.8 & Spring 3.1

H2 и конзола

Gant build system

Последна версия 2.5.2

3.x

Groovy 2.4, Spring 4.2 & Spring

Boot 1.3

Gradle build system

JSON views

Последна версия 3.1.0-М2

Page 8: Grails for bored java developers by Emil Doychev

Характеристики на Grails

Базира се на доказани Java frameworks:

Spring

Hibernate

Sitemesh

Quartz

Използва езика Groovy

Много по кратък, изразителен и DRY от Java код

По-малко код

по-висока производителност на развой

по-малко код за поддръжка

Page 9: Grails for bored java developers by Emil Doychev

Groovy Style Guide

Без точка и запетая

def или тип (dynamic / static)

Опционален return

http://www.groovy-lang.org/style-guide.html

Page 10: Grails for bored java developers by Emil Doychev

Groovy Style Guide

public по подразбиране

Без скоби

http://www.groovy-lang.org/style-guide.html

Page 11: Grails for bored java developers by Emil Doychev

Groovy Style Guide

Getters & Setters (property)

Инициализиране на bean с именувани параметри и конструктор по

подразбиране

http://www.groovy-lang.org/style-guide.html

Page 12: Grails for bored java developers by Emil Doychev

Groovy Style Guide

Equals & ==

Сравнението с == в Java е is() в Groovy

Операторът == в Groovy е умен equals()

GStrings (interpolation, multiline)

http://www.groovy-lang.org/style-guide.html

Page 13: Grails for bored java developers by Emil Doychev

Groovy Style Guide

Удобен синтаксис за структури от данни

http://www.groovy-lang.org/style-guide.html

Page 14: Grails for bored java developers by Emil Doychev

Groovy Style Guide

Groovy Development Kit

За итериране върху колекции Groovy предоставя допълнителни методи, чрез

декорация (благодарения на динамичната си природа):

each{}, find{}, findAll{}, every{}, collect{}, inject{}

Съществуват допълнителни методи за много стандартни класове: Strings, Files,

Streams, Collections …

http://beta.groovy-lang.org/gdk.html

http://www.groovy-lang.org/style-guide.html

Page 15: Grails for bored java developers by Emil Doychev

Groovy Style Guide

Силата на switch

http://www.groovy-lang.org/style-guide.html

Page 16: Grails for bored java developers by Emil Doychev

Groovy Style Guide

Groovy Truth

Всички обекти могат да бъдат приравнени до Boolean стойност:

Всичко което е null, void, нула или празно => false

Всичко останало => true

http://www.groovy-lang.org/style-guide.html

Page 17: Grails for bored java developers by Emil Doychev

Groovy Style Guide

Безопасно навигиране в граф – вариант на оператора .

http://www.groovy-lang.org/style-guide.html

Page 18: Grails for bored java developers by Emil Doychev

Groovy Style Guide

Catch any exception

http://www.groovy-lang.org/style-guide.html

Page 19: Grails for bored java developers by Emil Doychev

Характеристики на Grails

GORM

Лесен за използване и гъвкъв слой над Hibernate

Динамични методи за търсене

CRUD операции

Constraints

Оптимизация на производителността

Page 20: Grails for bored java developers by Emil Doychev

Пример

Page 21: Grails for bored java developers by Emil Doychev

Constraints в GORM

Page 22: Grails for bored java developers by Emil Doychev

Релации в GORM

Еднопосочна релация

Двупосочна релация – едно към едно

Релация „едно към много“

Релация „много към много“

Дървовидна структура

Page 23: Grails for bored java developers by Emil Doychev

GORM заявки

Динамични методи за търсене:

get

getAll

list

listOrderBy*

findBy* / findAllBy*

Съединения(and/or)

Оператори

Range оператори: LessThan, LessThanEquals, GreaterThan,

GreaterThanEquals, Between, NotEqual

String оператори: Like, Ilike

Null оператори: IsNull, IsNotNull

Criteria Builder

Page 24: Grails for bored java developers by Emil Doychev

Характеристики на Grails

Вградена поддръжка на тестване

От unit до функционални тестове

Без обвързване с конкретен framework:

Junit

Spock

EasyB

Geb

Selenium

Canoo

Page 25: Grails for bored java developers by Emil Doychev

Характеристики на Grails

DRY / Convention over Configuration / без XML конфигурации

Scaffolding

Ясно разграничаване на “environments”

Вградена поддръжка на REST

Page 26: Grails for bored java developers by Emil Doychev

REST

Домейн клас като REST ресурс

REST контролери

Наследяване на RestfulController

Page 27: Grails for bored java developers by Emil Doychev

Характеристики на Grails

Концепция за plugins

Разбиване на системата на по-малки части

Ефективен развой

Улеснена поддръжка

Огромно количество от налични плъгини

https://grails.org/plugins/

Page 28: Grails for bored java developers by Emil Doychev

Благодаря


Recommended