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

Groovy for Java experts

Feb 03, 2022

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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