groovy for java experts€¦ · groovy for java experts václav pech software developer and...

Post on 08-Jul-2020

10 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

www.jetbrains.com

Groovy for Java experts

Václav PechSoftware Developer and Product Evangelist

JetBrains, Inc.

2www.jetbrains.com

Properties

3www.jetbrains.com

Closures

4www.jetbrains.com

Closures – implicit parameter

5www.jetbrains.com

Iterations

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(), …

• …

7www.jetbrains.com

Some operators

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

• customer?.shippingAddress?.street

• return user.locale ?: defaultLocale

8www.jetbrains.com

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

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

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

10www.jetbrains.com

Big Boy Toys• Scripting

• Builders

• Domain Specific Languages

• Meta-programming

11www.jetbrains.com

Scripting• Evaluate custom Groovy code

At run-time!!!

12www.jetbrains.com

Builders• Construct hierarchies

13www.jetbrains.com

Builders - GAnt

14www.jetbrains.com

Builders – Spring config

15www.jetbrains.com

Categories

16www.jetbrains.com

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

– External• SQL, HTML, CSS, …

– Internal

17www.jetbrains.com

DSL – Date manipulation

18www.jetbrains.com

DSL – Hibernate criteria

19www.jetbrains.com

DSL – Account manipulation

20www.jetbrains.com

Dynamic method invocation

GroovyObjectinvokeMethod()getProperty()setProperty()

methodMissing()propertyMissing()

MetaClass

invokeMethod()

propertiesmethods

21www.jetbrains.com

SummaryGroovy

Powerful Java extension

Tests, Builders, Scripting, DSLs

– Contact me: vaclav@jetbrains.com

22www.jetbrains.com

Questions

top related