Slowathon

Groovy

Program for the desktop using the groovy programming language. Get confident at building Jenkins pipelines using groovy.

13 topics

32 hours

Intermediate

Certificate

groovy codealong screenshot

The course

We start the course from the base by learning about variables, operators and functions, the groovy way! Followed by a quick tour of branching & looping statements. We then approach object orientation in the groovy world. After that, we dive into functional programming & closures – By far the most important and fascinating thing in groovy.

We then start using the various data structures and see why they are so easy to use in groovy as compared to other JVM languages. Understand the dynamic nature of groovy by wetting your feet in Metaprogramming & Builders.

The last part of this course is completely dedicated to applying the groovy programming language to Input/Output and Jenkins.

All along, learn to write unit and integration tests for your groovy code using the Spock testing framework.

 

Pre requisites : Proficient in any other programming language (Java preferable), basic exposure to SQL, and lots of optimism!

The journey

  • What is groovy and how is it different from java?
  • Application of the groovy programming language
  • Installing the Groovy development kit (GDK)
  • Understanding the various tools like groovyc, groovy shell & groovy console that come with the GDK
  • Getting hands dirty on the groovy shell with initial basic commands

  • def keyword
  • Getting into the world of dynamic typing
  • Explicitly defining types
  • Arithmetic, relational & logical operators
  • Elvis & spaceship operators in groovy!

  • Defining functions the groovy way
  • Implicit & explicit returns from functions
  • Default arguments
  • Functions that take a groovy map as argument

  • Introduction to functional programming
  • Defining Closures in groovy
  • Higher order & lower order functions
  • Playing with the higher order functions that are already defined in groovy

  • if, if-else, if-else if-else selection statements for branching
  • The groovy switch statement for branching
  • Looping using traditional while and for statements
  • The groovy for statement for looping
  • break & continue statements

  • Classes & Objects
  • Instance & static variables
  • Constructors
  • Groovy beans
  • Encapsulation the groovy way!
  • Operator overloading the groovy way!
  • Composition
  • Inheritance
  • Abstract classes
  • Interfaces
  • Groovy Traits
  • Organising classes in packages
  • Default packages in groovy

  • Using the List data structure in groovy
  • Functional programming on lists in groovy using closures
  • Using Map in groovy
  • Functional programming on maps in groovy

  • Program flow in the event of an exception thrown
  • Exception handling using try-catch
  • Defining custom exceptions and throwing them
  • The finally block
  • How groovy exception handling is different from java

  • Meta Object Protocol (MOP)
  • MetaClass
  • Adding dynamic methods to built in groovy & java classes at run time
  • Adding dynamic methods to custom groovy classes at run time

  • Designing domain specific language (DSL) to easily initialise complex objects in groovy
  • ObjectGraphBuilder
  • JSON & XML builder
  • Other builders available in the groovy programming language

  • Read/write regular files
  • Read/write JSON files
  • Database connection
  • Database operations
  • Read/write to REST apis

  • Declarative pipeline
  • Scripted pipeline
  • Nodes
  • Stages, parallel stages
  • Steps
  • Triggers, timeouts
  • Environment variables
  • Exception handling
  • Recording test reports
  • Notifications
  • Shared libraries

  • Introduction to the SPOC framework for testing in groovy
  • Specification, feature methods, fixture methods
  • Blocks: given, when, then, expect, cleanup, where
  • Data driven testing in SPOC
  • Mocking and stubbing in SPOC

The skills

Groovy

Functional programming

Unit tests

Integration tests

Meta programming

OOP

Data structures

IO

The projects

Project 1Library management

As part of the capstone project, build a library management desktop application using groovy and MYSQL. Automate the build pipeline of the same using Jenkins

Contact us+91 98336 99504

Request more information