Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Tecnologie Groovy - Seconda Parte

Tecnologie Groovy - Seconda Parte

A talk given at JUG Milan (Italy) about Groovy peculiarities and its technology ecosystem. Slides are in Italian, sorry :)

This 'Part two' is focused on the technologies born around Groovy agile syntax and features.

Code samples used throughout the talk are available for download at: https://github.com/flerro/groovy-tech-JUG-talk-11.2013

Francesco Lerro

November 07, 2013
Tweet

More Decks by Francesco Lerro

Other Decks in Programming

Transcript

  1. • Agile ed espressivo (es. Collection, ?. , ?: ,

    Sluper, Builder, ...) • Dinamico (Category, Mixin, Metaclass) • Dichiarativo/funzionale (Closures) 4 giovedì 7 novembre 13
  2. • Framework Web ad alta produttività • Solido: Spring, Hibernate,

    Sitemesh • Moderno: COC, smart reloading, scaffolding • Molti plugin: Spring Security, MongoDB, etc. 7 giovedì 7 novembre 13
  3. • Test automatici nel browser • Funziona su Firefox, Chrome,

    IE, Safari • Selezione HTML stile jQuery • Si integra con JUnit, TestNG, Spock Geb 9 giovedì 7 novembre 13
  4. import geb.Browser Browser.drive { go "http://myapp.com/login" assert $("h1").text() == "Please

    Login" $("form").find("input", name: "username").value(“admin”) $("form").find("input", name: "password").value(“password”) $("form").find("input", name: "login").value() assert $("h1").text() == "Admin Section" } Testing con Geb 10 giovedì 7 novembre 13
  5. import geb.Browser Browser.drive { go "http://myapp.com/login" assert $("h1").text() == "Please

    Login" $("form").with { username = "admin" password = "password" login().click() } assert $("h1").text() == "Admin Section" } Testing con Geb 11 giovedì 7 novembre 13
  6. import geb.Browser Browser.drive { go "http://myapp.com/login" assert $("h1").text() == "Please

    Login" $("form").with { username = "admin" password = "password" login().click() } assert $("h1").text() == "Admin Section" } Testing con Geb 12 giovedì 7 novembre 13
  7. Spock • Testing e specification framework • Molto espressivo, facile

    da imparare • Facilita approccio Behaviour Driven 13 giovedì 7 novembre 13
  8. given: "un nuovo conto bancario" when: "verso 10€" then: "il

    saldo del conto è 10€" Spock • Testing e specification framework • Molto espressivo, facile da imparare • Facilita approccio Behaviour Driven 13 giovedì 7 novembre 13
  9. Gradle • Tool per l’automazione di build • Flessibilità di

    Ant e convenzioni Maven • Definizione dichiarativa via ad-hoc DSL • Molto in voga 16 giovedì 7 novembre 13
  10. [project root] /src /main ! /java /resources /test /java /resources

    build.gradle Un progetto Java 17 giovedì 7 novembre 13
  11. [project root] /src /main ! /java /resources /test /java /resources

    build.gradle Un progetto Java ... 18 giovedì 7 novembre 13
  12. [project root] /src /main ! /java /resources /test /java /resources

    build.gradle Un progetto Java ... 19 giovedì 7 novembre 13
  13. GPars • Groovy Parallel Systems • Framework per facilitare la

    costruzione di applicazioni concorrenti • Costrutti per Dataflow, attori, funzioni asicrone componibili, map-reduce... • Sfrutta l’espressività di Groovy (Closure) 21 giovedì 7 novembre 13
  14. Dataflow enfasi sui dati ed il loro ‘flusso’ e non

    sul processo che li manipola (deadlock deterministico) 22 giovedì 7 novembre 13
  15. Attori oggetti che si scambiano messaggi e non condividono stati

    mutabili (VS shared-memory multi-threading) 23 giovedì 7 novembre 13
  16. Riferimenti • Groovy User Guide - http://groovy.codehaus.org/User+Guide • Bob Brown

    - The future is Gr8 - http://wordpress.transentia.com.au/wordpress/ 2013/05/07/disaster/ • Sergey Dolgopolov - Testing the performance of new Groovy 2.0 release with GBench - http://www.sergeydolgopolov.me/2012/07/groovy-20-has-been-released- testing-new.html • Guillame Laforge - Groovy Ecosystem - http://www.slideshare.net/glaforge/groovy- ecosystem-jfokus-2011-guillaume-laforge • Hubert Klein Ikkink (aka mrhaki) - Groovy goodness blog - http://mrhaki.blogspot.it/ • Geb Samples - http://www.gebish.org • GPars Samples for Dataflow and Actors - http://gpars.codehaus.org • Spock Samples - http://code.google.com/p/spock/ • Tim Myer - http://timezra.blogspot.it/2011/11/trampoline-and-memoize.html 25 giovedì 7 novembre 13