Alphageeks IL #2 Groovy & Grails

  • 1,088 views
Uploaded on

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/

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,088
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
53
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Groovy & Grails(also) the future of Java Web Development
    Yuval Goldstein,
    yuvalgo@gmail.com,
    @yuvalgo
  • 2. Groovy, Grails, Agenda
    Beyond Java
    What’s groovy?
    What’s grails?
    How people use them?
  • 3. 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
  • 4. 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
  • 5. 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
  • 6. Demo
    Let’s take a Java class and show how it’s done in Groovy
  • 7. Closures
    A piece of code that can be passes around and executed (sort of an Anonymous class with a method)
  • 8. More Closures
  • 9. Demo
    Let’s see some Collections and Closures working together
  • 10. Groovy typing
    Types can be specified and enforced
    Types can unspecified and deducted (Duck Typing)
  • 11. Duck Typing
    Behavior of objects is determines by their own methods and members rather than by declarations
  • 12. Duck Season? - Demo
    Let’s see how duck typing works
  • 13. 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
  • 14. Expando Classes
  • 15. String Matching
  • 16. 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…
  • 17. Demo
    Create an empty application
    Develop a domain classes
    Generate a trivial CRUD : dynamic, then static
  • 18. 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()
  • 19. 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)
  • 20. 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
  • 21. 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…
  • 22. Testing support
    Built-in Unit and Integration testing
    Good mockup support
    Can’t do without it
  • 23. (Only some) Plugins
    GrailsUI
    Acegi Security
    Twitter
    Flex
    Quartz
    Searchable
  • 24. 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
  • 25. 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
  • 26. 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
  • 27. 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
  • 28. Thanks !