Alphageeks IL #2 Groovy & Grails
Upcoming SlideShare
Loading in...5
×
 

Alphageeks IL #2 Groovy & Grails

on

  • 2,485 views

Second Alphageeks IL meetup:...

Second Alphageeks IL meetup:
Yuval Goldstein talks on Groovy & Grails and the shift from static typing to dynamic typing.

Check us out for more events:
http://alphageeks.blogli.co.il/

Statistics

Views

Total Views
2,485
Views on SlideShare
2,473
Embed Views
12

Actions

Likes
1
Downloads
52
Comments
0

1 Embed 12

http://www.slideshare.net 12

Accessibility

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Alphageeks IL #2 Groovy & Grails Alphageeks IL #2 Groovy & Grails Presentation Transcript

    • Groovy & Grails(also) the future of Java Web Development
      Yuval Goldstein,
      yuvalgo@gmail.com,
      @yuvalgo
    • Groovy, Grails, Agenda
      Beyond Java
      What’s groovy?
      What’s grails?
      How people use them?
    • Beyond Java
      Java= Language + Classes +JVM
      JEE = Robust spec to support server-driven apps
      The good: OO, popular, tons of frameworks, enterprise ready (queues, transactions, web-services)
      The Bad: Verbose, long turn-around, mix and match your own framework
    • Beyond Java
      Java code > compiled into bytecode > JVM
      The JVM supports other languages:
      Groovy
      Scala
      JRuby
      Jython
      But WHY? : Because not every problem should be solved by a general purpose language
    • Groovy
      Cool language, compiles into bytecode
      Similar to Java, a lot of additions and improvements:
      Language level support for collections
      Closures and Builders
      Dynamic typing
      Concise syntax
      Groovy2Java, Java2Groovy integration
    • Demo
      Let’s take a Java class and show how it’s done in Groovy
    • Closures
      A piece of code that can be passes around and executed (sort of an Anonymous class with a method)
    • More Closures
    • Demo
      Let’s see some Collections and Closures working together
    • Groovy typing
      Types can be specified and enforced
      Types can unspecified and deducted (Duck Typing)
    • Duck Typing
      Behavior of objects is determines by their own methods and members rather than by declarations
    • Duck Season? - Demo
      Let’s see how duck typing works
    • Duck Typing
      Sacrifice certainty for laziness, WTF?
      Some application really need strict typing, other doesn’t
      Frameworks generate a lot of code for you on runtime
      Faster code changes
      Good testing really helps
      You already doing it:
      HTML, CSS, SQL, JSP
    • Expando Classes
    • String Matching
    • Introducing Grails
      Grails=Groovy + Spring + Hibernate + Sitemesh
      A framework for developing web-apps with pleasure
      Open-Source, supported by Spring-Source
      Convention over configuration
      Model-driven
      Short turnaround
      Good developer-testing support
      A lot more…
    • Demo
      Create an empty application
      Develop a domain classes
      Generate a trivial CRUD : dynamic, then static
    • Domain Objects and GORM
      GORM: Hibernate DSL
      1:1, 1:N, M:N, Object hierarchies, Versioning, Cascade, Fetch
      Objects are DAOs
      Automatic Query Syntax:
      Object.save()
      Object.get(id)
      Object.findAll()
    • Controllers
      Each closure maps to a request name
      Render templates, GSP, XML, JSON
      Automatic variables: param, session, flash
      Support Spring Webflow
      Dependency Injection support (for services)
    • Views
      GSPs, taglibs, Templates
      HTML centric
      Built in Tags for: Forms and error handling , AJAX, Pagination, uploads
      Pluggable Ajax support: Prototype, YUI, others
      Plugins: Grails-UI, Flex, GWT, Open Lazzlo, Portlet integration
    • Services
      Help re-use code, scope transaction, expose web-services
      Different Scopes: singleton, session, prototype, request, conversation, flow
      Dependency Injection support
      Plugins: JMS integration, Quartz Jobs, Xfire/Spring web-services, etc…
    • Testing support
      Built-in Unit and Integration testing
      Good mockup support
      Can’t do without it
    • (Only some) Plugins
      GrailsUI
      Acegi Security
      Twitter
      Flex
      Quartz
      Searchable
    • Groovy, Grails in the wild
      Groovy:
      As a scripting tool for developers
      For testing plain java code
      For developing swing code (special DSL)
      For coding grails application
      Grails:
      Prototypes and back-office applications
      Grails Frontend with Java backend
      Grails frontend and backend
    • Community and support
      Open-Source, use for free
      Commercial training and support by spring
      Grails user newsgroup on Nabble: 40-80 messages a day
      IDEs: Eclipse, Intellij, Netbeans, TextMate
      Books:Groovy in action, Grails in Action, Definitive Guide to Grails, Getting started with Grails, Groovy & Grails Recepies, more…
      Sites:grails.org, aboutgroovy.com, grailspodcast.com, grailstutorials.com
    • Who use Grails?
      Linkedin.com
      Sky.com
      twitcaps.com
      blerp.com
      twitsms.co.uk
      Ganttzilla.com
      Lot’s of community, e-commerce and twitter oriented sites
    • Summary
      Grails is ideal for small and medium size application
      Grails ~= Rails capabilities + JVM + All existing Java frameworks
      0 Setup development environment
      Fun to use
    • Thanks !