39
I Introducing Groovy into Java project Yuriy Chulovskyy, Luxoft

JDD2014: Introducing groovy into JAVA project - Yuriy Chulovskyy

  • Upload
    proidea

  • View
    102

  • Download
    1

Embed Size (px)

DESCRIPTION

This is story about thing you wanted to do but didn't yet. We will start with comparison of Groovy and Java code, will see how to test with Groovy and finally will try to sell it to manager

Citation preview

Page 1: JDD2014: Introducing groovy into JAVA project - Yuriy Chulovskyy

I

Introducing Groovy into Java project

Yuriy Chulovskyy, Luxoft

Page 2: JDD2014: Introducing groovy into JAVA project - Yuriy Chulovskyy

www.luxoft.com

Yuriy Chulovskyy, 10 years in IT

[email protected] http://www.linkedin.com/in/yuriychulovskyy https://github.com/ychulovskyy

Who am I?

Page 3: JDD2014: Introducing groovy into JAVA project - Yuriy Chulovskyy

www.luxoft.com

My goals

We can do better!!!

Page 4: JDD2014: Introducing groovy into JAVA project - Yuriy Chulovskyy

www.luxoft.com

Why Groovy?

Page 5: JDD2014: Introducing groovy into JAVA project - Yuriy Chulovskyy

www.luxoft.com

Syntax sugar. POJO

61 lines of code

Page 6: JDD2014: Introducing groovy into JAVA project - Yuriy Chulovskyy

www.luxoft.com

Page 7: JDD2014: Introducing groovy into JAVA project - Yuriy Chulovskyy

www.luxoft.com

Syntax sugar. POJO

Semicolons

Page 8: JDD2014: Introducing groovy into JAVA project - Yuriy Chulovskyy

www.luxoft.com

Return statement

Page 9: JDD2014: Introducing groovy into JAVA project - Yuriy Chulovskyy

www.luxoft.com

public keyword

Page 10: JDD2014: Introducing groovy into JAVA project - Yuriy Chulovskyy

www.luxoft.com

Verbose setters/getters

Page 11: JDD2014: Introducing groovy into JAVA project - Yuriy Chulovskyy

www.luxoft.com

37 lines of code

Default implementation for the methods

Page 12: JDD2014: Introducing groovy into JAVA project - Yuriy Chulovskyy

www.luxoft.com

10 lines of code

Page 13: JDD2014: Introducing groovy into JAVA project - Yuriy Chulovskyy

www.luxoft.com

Object construction

Object name mentioned in each line

verbose statement

parentheses

Page 14: JDD2014: Introducing groovy into JAVA project - Yuriy Chulovskyy

www.luxoft.com

Page 15: JDD2014: Introducing groovy into JAVA project - Yuriy Chulovskyy

www.luxoft.com

Page 16: JDD2014: Introducing groovy into JAVA project - Yuriy Chulovskyy

www.luxoft.com

Page 17: JDD2014: Introducing groovy into JAVA project - Yuriy Chulovskyy

www.luxoft.com

Truth

Page 18: JDD2014: Introducing groovy into JAVA project - Yuriy Chulovskyy

www.luxoft.com

Elvis and null-safe navigation

Page 19: JDD2014: Introducing groovy into JAVA project - Yuriy Chulovskyy

www.luxoft.com

Collections. List

Page 20: JDD2014: Introducing groovy into JAVA project - Yuriy Chulovskyy

www.luxoft.com

Collections. List

Page 21: JDD2014: Introducing groovy into JAVA project - Yuriy Chulovskyy

www.luxoft.com

Collections. List

Page 22: JDD2014: Introducing groovy into JAVA project - Yuriy Chulovskyy

www.luxoft.com

Collections. HashMap

Page 23: JDD2014: Introducing groovy into JAVA project - Yuriy Chulovskyy

www.luxoft.com

Patterns. Singleton

Page 24: JDD2014: Introducing groovy into JAVA project - Yuriy Chulovskyy

www.luxoft.com

Patterns. Immutable

Page 25: JDD2014: Introducing groovy into JAVA project - Yuriy Chulovskyy

www.luxoft.com

Patterns. Builder

Page 26: JDD2014: Introducing groovy into JAVA project - Yuriy Chulovskyy

www.luxoft.com

Vice versa

Page 27: JDD2014: Introducing groovy into JAVA project - Yuriy Chulovskyy

www.luxoft.com

Testing in Groovy.Power asserts

Page 28: JDD2014: Introducing groovy into JAVA project - Yuriy Chulovskyy

www.luxoft.com

Testing in Groovy.Power asserts

Page 29: JDD2014: Introducing groovy into JAVA project - Yuriy Chulovskyy

www.luxoft.com

Testing in Groovy.Spock

Defines a Specification with features:setup: or given:expect:when:then:where:

Page 30: JDD2014: Introducing groovy into JAVA project - Yuriy Chulovskyy

www.luxoft.com

Testing in Groovy.Spock

Page 31: JDD2014: Introducing groovy into JAVA project - Yuriy Chulovskyy

www.luxoft.com

Testing in Groovy.Spock

Page 32: JDD2014: Introducing groovy into JAVA project - Yuriy Chulovskyy

www.luxoft.com

Testing in Groovy.Spock

Page 33: JDD2014: Introducing groovy into JAVA project - Yuriy Chulovskyy

www.luxoft.com

Stream API

Page 34: JDD2014: Introducing groovy into JAVA project - Yuriy Chulovskyy

www.luxoft.com

Summary.Syntactic Sugar

● Optional: semicolons, parentheses, return keyword, public keyword, typing

● GString● Truth, Elvis, null-safe navigation● Constructor with map as parameter, “with” closure● Collections API● Power asserts

Page 35: JDD2014: Introducing groovy into JAVA project - Yuriy Chulovskyy

www.luxoft.com

Summary.AST transformation

Page 36: JDD2014: Introducing groovy into JAVA project - Yuriy Chulovskyy

www.luxoft.com

Summary.Java 8 vs Groovy

Page 37: JDD2014: Introducing groovy into JAVA project - Yuriy Chulovskyy

www.luxoft.com

Summary.Infrastructure

Page 38: JDD2014: Introducing groovy into JAVA project - Yuriy Chulovskyy

www.luxoft.com

Links

http://www.groovy-lang.org/

https://speakerdeck.com/glaforge/what-makes-groovy-groovy-jax-london-2013

http://glaforge.appspot.com/article/back-from-javaone

http://www.slideshare.net/aalmiray/gr8conf-groovy-ecosystem

https://github.com/ychulovskyy/TestSpockReportGenerator

Page 39: JDD2014: Introducing groovy into JAVA project - Yuriy Chulovskyy

www.luxoft.com

Thanks!