SlideShare a Scribd company logo
I 
Introducing Groovy into 
Java project 
Yuriy Chulovskyy, Luxoft
Who am I? 
Yuriy Chulovskyy, 10 years in IT 
www.luxoft.com 
yuriy.chulovskyy@gmail.com 
http://www.linkedin.com/in/yuriychulovskyy 
https://github.com/ychulovskyy
My goals 
www.luxoft.com 
We can do better!!!
Why Groovy? 
www.luxoft.com
Syntax sugar. POJO 
www.luxoft.com 
61 lines of code
www.luxoft.com
Syntax sugar. POJO 
www.luxoft.com 
Semicolons
www.luxoft.com 
Return statement
www.luxoft.com 
public keyword
www.luxoft.com 
Verbose setters/getters
www.luxoft.com 
Default 
implementation 
for the methods 
37 lines of code
www.luxoft.com 
10 lines of code
Object construction 
www.luxoft.com 
Object name mentioned in each line 
verbose statement 
parentheses
www.luxoft.com
www.luxoft.com
www.luxoft.com
Truth 
www.luxoft.com
Elvis and null-safe 
navigation 
www.luxoft.com
Collections. List 
www.luxoft.com
Collections. List 
www.luxoft.com
Collections. List 
www.luxoft.com
Collections. HashMap 
www.luxoft.com
Patterns. Singleton 
www.luxoft.com
Patterns. Immutable 
www.luxoft.com
Patterns. Builder 
www.luxoft.com
Vice versa 
www.luxoft.com
Testing in Groovy. 
Power asserts 
www.luxoft.com
Testing in Groovy. 
Power asserts 
www.luxoft.com
Testing in Groovy. 
Spock 
Defines a Specification with features: 
setup: or given: 
expect: 
when: 
then: 
where: 
www.luxoft.com
Testing in Groovy. 
Spock 
www.luxoft.com
Testing in Groovy. 
Spock 
www.luxoft.com
Testing in Groovy. 
Spock 
www.luxoft.com
Stream API 
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 
www.luxoft.com
Summary. 
AST transformation 
www.luxoft.com
Summary. 
Java 8 vs Groovy 
www.luxoft.com
Summary. 
Infrastructure 
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 
www.luxoft.com
Thanks! 
www.luxoft.com

More Related Content

PDF
ElixirでNode.jsを倒す
PDF
Xcode Survival Guide
PDF
Xcode Survival Guide Version Two
PDF
How To Think In Go
PPTX
PLNOG15: Exascale future of today - Rob Bird
PDF
CONFidence 2015: when something overflowing... - Peter Hlavaty
PPTX
PLNOG 13: Maciej Grabowski: HP Moonshot
PPTX
CONFidence 2015: DTrace + OSX = Fun - Andrzej Dyjak
ElixirでNode.jsを倒す
Xcode Survival Guide
Xcode Survival Guide Version Two
How To Think In Go
PLNOG15: Exascale future of today - Rob Bird
CONFidence 2015: when something overflowing... - Peter Hlavaty
PLNOG 13: Maciej Grabowski: HP Moonshot
CONFidence 2015: DTrace + OSX = Fun - Andrzej Dyjak

Viewers also liked (20)

PDF
PLNOG 13: Julian Lucek: Centralized Traffic Enginnering
PPTX
PLNOG15: Implementation of integrated DDI/NAC solution for a health insurance...
PDF
PLNOG15: Data Center migration in practice - Tomasz Jarlaczyk
PDF
CONFidence 2015: Analiza przypadku: Carbanak - jak uniknąć powtórki - Przemys...
PDF
PLNOG 13: Marcin Kuczera: Difficult business client – VOIP and modem data tra...
PPTX
PLNOG15: Automation of deployment and management of network devices - Oskar J...
PDF
PLNOG 13: Piotr Jabłoński: First Steps in Autonomic Networking
PDF
PLNOG15: Cisco Application Centric Infrastructure - why ...? - Krzysztof Mazepa
PDF
PLNOG 13: Mateusz Viste: Concepts of WAN traffic engineering using BGP real-t...
PDF
PLNOG15: Yang - latin of XXI centaury - Sławomir Janukowicz
PDF
PLNOG 13: Alexis Dacquay: Handling high-bandwidth-consumption applications in...
PDF
4Developers 2015: Wnioski wyciągnięte z powiększania zespołu - Bartek Nowa...
PDF
Jdd2014: High performance logging - Peter Lawrey
PPTX
CONFidence 2015: AppSec, the untrustable dev - Timur Khrotko
PPTX
Atmosphere Conference 2015: Oktawave Horizon Project: the future of real-time...
PPTX
Royal Ascot - What To Wear
PDF
JDD2015: ClassIndex - szybka alternatywa dla skanowania klas - Sławek Piotrowski
PDF
JDD2014: Strategiczna refaktoryzacja - Michał Bartyzel
DOC
New microsoft word document
PDF
JDD2014: The mythical 10x developer - Michał Gruca
PLNOG 13: Julian Lucek: Centralized Traffic Enginnering
PLNOG15: Implementation of integrated DDI/NAC solution for a health insurance...
PLNOG15: Data Center migration in practice - Tomasz Jarlaczyk
CONFidence 2015: Analiza przypadku: Carbanak - jak uniknąć powtórki - Przemys...
PLNOG 13: Marcin Kuczera: Difficult business client – VOIP and modem data tra...
PLNOG15: Automation of deployment and management of network devices - Oskar J...
PLNOG 13: Piotr Jabłoński: First Steps in Autonomic Networking
PLNOG15: Cisco Application Centric Infrastructure - why ...? - Krzysztof Mazepa
PLNOG 13: Mateusz Viste: Concepts of WAN traffic engineering using BGP real-t...
PLNOG15: Yang - latin of XXI centaury - Sławomir Janukowicz
PLNOG 13: Alexis Dacquay: Handling high-bandwidth-consumption applications in...
4Developers 2015: Wnioski wyciągnięte z powiększania zespołu - Bartek Nowa...
Jdd2014: High performance logging - Peter Lawrey
CONFidence 2015: AppSec, the untrustable dev - Timur Khrotko
Atmosphere Conference 2015: Oktawave Horizon Project: the future of real-time...
Royal Ascot - What To Wear
JDD2015: ClassIndex - szybka alternatywa dla skanowania klas - Sławek Piotrowski
JDD2014: Strategiczna refaktoryzacja - Michał Bartyzel
New microsoft word document
JDD2014: The mythical 10x developer - Michał Gruca
Ad

Similar to JDD2014: Introducing groovy into JAVA project - Yuriy Chulovskyy (19)

PDF
Let's contribute, HTML5Rocks/ko!
PDF
GroovyFX - Groove JavaFX
ODP
Static Analysis and AST Transformations
PDF
GroovyFX - groove JavaFX Gr8Conf EU 2017
KEY
Android Bootstrap
PDF
Debugging rendering problems at scale
PPTX
Groovy And Grails Introduction
PDF
Intro to OOP
PDF
GDG SF Meetup - Progressive Web Apps 101
PPT
Javaone2008 Bof 5102 Groovybuilders
PPTX
Groovy on Android
PDF
TDC2016POA | Trilha Pyhton - Python para Internet of Things
ZIP
Groovy and Grails in Action - Devoxx 2008 - University - Guillaume Laforge
PDF
GDG DevFest 2018 - Progressive Web Apps 101
PDF
What would your own version of Ruby look like?
PDF
GOTO Paris | @see Gopher
PDF
Open Hack London - Introduction to YQL
PDF
Scenic City Summit 2018 - Progressive Web Apps 101
PDF
Ratpack On the Docks
Let's contribute, HTML5Rocks/ko!
GroovyFX - Groove JavaFX
Static Analysis and AST Transformations
GroovyFX - groove JavaFX Gr8Conf EU 2017
Android Bootstrap
Debugging rendering problems at scale
Groovy And Grails Introduction
Intro to OOP
GDG SF Meetup - Progressive Web Apps 101
Javaone2008 Bof 5102 Groovybuilders
Groovy on Android
TDC2016POA | Trilha Pyhton - Python para Internet of Things
Groovy and Grails in Action - Devoxx 2008 - University - Guillaume Laforge
GDG DevFest 2018 - Progressive Web Apps 101
What would your own version of Ruby look like?
GOTO Paris | @see Gopher
Open Hack London - Introduction to YQL
Scenic City Summit 2018 - Progressive Web Apps 101
Ratpack On the Docks
Ad

Recently uploaded (20)

PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PPTX
Introduction to Artificial Intelligence
PDF
System and Network Administraation Chapter 3
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PPTX
Computer Software and OS of computer science of grade 11.pptx
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PDF
medical staffing services at VALiNTRY
PDF
PTS Company Brochure 2025 (1).pdf.......
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PPTX
assetexplorer- product-overview - presentation
PDF
Designing Intelligence for the Shop Floor.pdf
PDF
Nekopoi APK 2025 free lastest update
PPTX
history of c programming in notes for students .pptx
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
Digital Systems & Binary Numbers (comprehensive )
PDF
Softaken Excel to vCard Converter Software.pdf
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Introduction to Artificial Intelligence
System and Network Administraation Chapter 3
Upgrade and Innovation Strategies for SAP ERP Customers
Computer Software and OS of computer science of grade 11.pptx
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
medical staffing services at VALiNTRY
PTS Company Brochure 2025 (1).pdf.......
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Odoo Companies in India – Driving Business Transformation.pdf
Internet Downloader Manager (IDM) Crack 6.42 Build 41
assetexplorer- product-overview - presentation
Designing Intelligence for the Shop Floor.pdf
Nekopoi APK 2025 free lastest update
history of c programming in notes for students .pptx
Navsoft: AI-Powered Business Solutions & Custom Software Development
Digital Systems & Binary Numbers (comprehensive )
Softaken Excel to vCard Converter Software.pdf

JDD2014: Introducing groovy into JAVA project - Yuriy Chulovskyy