Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Some Java developers have asked if I could give them a 2-day primer on Grails development. I'm assuming they're familiar with:

  • Java language and libraries
  • Java web development, e.g. Servlets, JSPs
  • Spring
  • Hibernate
  • Client-side development, CSS, HTML, JavaScript

I'm further assuming they have no experience with Groovy or Grails. AFAIK, the app that they'll be building is a new project, so there's no need to cover topics like using GORM with a legacy database.

I'm trying to decide how I should structure the course, e.g. what topics to cover and how much time to spend on each. I reckon about 1/2 - 3/4 days on Groovy and the rest of the time on Grails would be adequate. I'll probably use the Groovy console to demonstrate the Groovy language concepts and a simple Grails app for explaining the conventions and structure of a Grails project.

If anyone has a list of Groovy/Grails topics that I should cover, or even an outline of a similar course that they've given/taken, I'd be very grateful. Naturally, I will credit for any resources that I use during the course.

share|improve this question
Familiar with or knowledgeable on? Many Java developers have no knowledge on the web side... –  Aaron McIver Jan 17 '11 at 19:37

1 Answer 1

For the basics, I'd cover

  • defining a domain
  • generating scaffolds
  • editing GSP
  • more advanced controllers

in that order.

If you're that way inclined, it might be interesting to delve into acceptance testing with Spock and Geb, and start from that end of it.

I wouldn't personally dwell on the fancy language constructs that Groovy allows you, beyond explaining what a Closure is and does and how it differs from a method. I also wouldn't try to cover Spring, Hibernate, servlets.

If there was time left over, I'd explain how to use plugins, Ivy and Gradle.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.