Groovy and Grails
Groovy and Grails
Many have heard the buzz around Grails (a full-stack web-app platform that “attempts to solve as many pieces of the web development puzzle”) and the Groovy language (since 2004, one of the most powerful dynamic languages for the JVM). However, how many can leverage the full power of the platform?
Maybe you've heard about frameworks such as Ruby on Rails, Django or TurboGears and would like to achieve similar benefits in your development shop? Don’t let DHH and the Rails community have all the fun...
This workshop is intended to be a solid and pragmatic introduction to using Grails & Groovy at work, or for those advocating or promoting such rapid development frameworks to management. Read on to learn more!
To take this course, you should know how to code (and test) in Java. You should be able to answer most of the following questions:
- What is a difference between a class and an object?
- What is the difference between static and non-static field?
- What is the difference between extends and implements keywords?
- What is an anonymous inner class? What is the purpose of @Override?
Need to refresh your skills in Java? NewCircle's Java Fundamentals Tutorial can help get you up to speed.
Upon completion of this course, you will be able to:
- Write scripts and full-fledged programs in Groovy
- Integrate with standard Java libraries
- Use Grails as a web-application platform and/or to deliver RESTful web services
- Use Grails scaffolding to build rapid domain-driven prototypes
- Go beyond Grails scaffolding to deliver modular views, using SiteMesh
- Take advantage of Grails AJAX features and tag libraries. Integrate w/ micro-frameworks such as Backbone.js, AngularJS
- Test your code to ensure you and fellow developers adhere to readability and quality standards
Introducing Grails: Bringing back the fun to development on the JVM
- Introducing Grails
- Meta framework - built on the shoulders of giants: Spring, Hibernate, SiteMesh, Tomcat
- Project Structure
- Convention over configuration -- building w/ opinionated software
- Separation of concerns - Web MVC, etc.
Building Your App: Domain-driven development and view scaffolding
- Domain objects and GORM (intro.)
- GORM "The Right Relationship" - Objects and Associations
- Scaffolding the UI
- Introducing Groovy: A Robust, Dynamic Language on the JVM w/ many benefits of functional languages
- Controllers and User-friendly Routes
- Continuing the GSP evolution - using
and custom Taglibs (MUCH easier than in Spring!)
- Composing complex views and flows
- Alternative view technologies (Grails and MicroJS - Exposing REST services for select Domain(s))
Getting Your App Ready for Staging and Production
- Testing at all phases (unit / integration / functional / api)
- Database Migrations
- Adding capabilities thru Plug-ins
- External Configuration / Settings
- Internationalization - loading Messages dynamically in DB
Wrap-up and Review In-Class App Project
- Introducing Grails in the Enterprise Reverse Engineering
- Modernizing Legacy Apps Grails and MicroJS
- Exposing REST services for select domain(s)
- Multiple DataSource Definitions
- Asynchronous Processing