groovy for java experts

22
www.jetbrains.com Groovy for Java experts Václav Pech Software Developer and Product Evangelist JetBrains, Inc.

Upload: others

Post on 03-Feb-2022

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Groovy for Java experts

www.jetbrains.com

Groovy for Java experts

Václav PechSoftware Developer and Product Evangelist

JetBrains, Inc.

Page 2: Groovy for Java experts

2www.jetbrains.com

Properties

Page 3: Groovy for Java experts

3www.jetbrains.com

Closures

Page 4: Groovy for Java experts

4www.jetbrains.com

Closures – implicit parameter

Page 5: Groovy for Java experts

5www.jetbrains.com

Iterations

Page 6: Groovy for Java experts

6www.jetbrains.com

GDK = JDK + FUN• java.util.Collection

– each(), find(), join(), min(), max() …

• java.lang.Object– any(), every(), print(), invokeMethod(), …

• java.lang.Number– plus(), minus(), power(), upto(), times(), …

• …

Page 7: Groovy for Java experts

7www.jetbrains.com

Some operators

• [‘Java’, ‘Groovy’]*.toUpperCase()

• customer?.shippingAddress?.street

• return user.locale ?: defaultLocale

Page 8: Groovy for Java experts

8www.jetbrains.com

Syntax enhancements• Dynamic (duck) typing – optional!• GDK• Syntax enhancements

– Properties– Closures– Named parameters – Collections and maps– Operator overloading– …

Page 9: Groovy for Java experts

9www.jetbrains.com

Enjoy writing tests• For both Java and Groovy• Run with Ant, Maven, IDE, …• Integrated JUnit support

• assert…(), shouldFail(), …• Relaxed typing• Easy mocking

Page 10: Groovy for Java experts

10www.jetbrains.com

Big Boy Toys• Scripting

• Builders

• Domain Specific Languages

• Meta-programming

Page 11: Groovy for Java experts

11www.jetbrains.com

Scripting• Evaluate custom Groovy code

At run-time!!!

Page 12: Groovy for Java experts

12www.jetbrains.com

Builders• Construct hierarchies

Page 13: Groovy for Java experts

13www.jetbrains.com

Builders - GAnt

Page 14: Groovy for Java experts

14www.jetbrains.com

Builders – Spring config

Page 15: Groovy for Java experts

15www.jetbrains.com

Categories

Page 16: Groovy for Java experts

16www.jetbrains.com

DSL• Limited purpose language• Targeted to a particular domain• Friendlier API to a framework

– External• SQL, HTML, CSS, …

– Internal

Page 17: Groovy for Java experts

17www.jetbrains.com

DSL – Date manipulation

Page 18: Groovy for Java experts

18www.jetbrains.com

DSL – Hibernate criteria

Page 19: Groovy for Java experts

19www.jetbrains.com

DSL – Account manipulation

Page 20: Groovy for Java experts

20www.jetbrains.com

Dynamic method invocation

GroovyObjectinvokeMethod()getProperty()setProperty()

methodMissing()propertyMissing()

MetaClass

invokeMethod()

propertiesmethods

Page 21: Groovy for Java experts

21www.jetbrains.com

SummaryGroovy

Powerful Java extension

Tests, Builders, Scripting, DSLs

– Contact me: [email protected]

Page 22: Groovy for Java experts

22www.jetbrains.com

Questions