GV110: Groovy Workshop (1-2 days)

Workshop Overview

This workshop is aimed at developers (in particular Java developers) who wish to learn about the Groovy language. Groovy's goal is to bring lightweight, agile, and dynamic programming to the Java world.

Groovy encompasses powerful features as known from Ruby, Python, Scala, PERL and Smalltalk in an expressive and intuitive syntax while keeping the view and perspective of a Java programmer. Its seamless integration with Java makes it a perfect solution for enhancing your current Java projects with dynamic behavior. It's built-in testing and mocking facilities make it ideal for agile development teams wanting to boost their testing productivity through a dynamic language.

Audience

Software Developers, Testers, Designers, Technical Managers and Architects interested in understanding the role dynamic languages (and Groovy in particular) play and how they can be used effectively during agile development. Attendees will come away with an example-rich exposure to Groovy and will be able to start using Groovy in their own workplaces.

Pre-requisites

Attendees should have some previous exposure to the Java programming language or exposure to Ruby or another scripting language.

Course Topics

  • Introduction: A brief positioning and history of Groovy
  • Language Basics:
    • Everything is an object
    • Numbers and Expressions
    • Strings and Regular expressions
    • Lists, Maps and Ranges
    • Basic Control Structures
  • Closures: Code as data, Built-in closures, writing your own
  • Processing XML: reading with parsers and writing with builders
  • Accessing Databases: Simple syntax, Datasets and Lazy evaluation
  • OO Features: Inheritance, Interfaces, Multimethods
  • Working with Files and Directories: closure methods for file and directory handling, seamless resource management
  • Other Library Features: other enhancements Groovy makes to the Java libraries
  • Unit Testing and Mocks: Groovy's extra testing capabilities and built-in mocking facilities
  • Meta Object Programming: MOP capabilities for dynamic programming
  • Native Integration: Controlling native applications etc.
  • Server-Side Programming: Groovlets and GSP pages
  • Template Engines: GString's through to templates
  • Testing with Groovy: How to test web pages, web services, databases and more
  • Grails: a quick introduction to the ground-breaking application framework