SlideShare uma empresa Scribd logo
1 de 42
Baixar para ler offline
Apresentando
GROOVY E GRAILS
Ricardo Wendell
rwendell@thoughtworks.com
Setembro 2013
2005 a 2013
2007ish a 2012
desde maio/2013
Minha (breve) timeline…
Que linguagens você
usa para programar?
Groovy é uma
linguagem scripting
dinâmica para a JVM, com
características de Ruby,
Python e Smalltalk
Groovy é uma
linguagem scripting
dinâmica para a JVM, com
características de Ruby,
Python e Smalltalk
Groovy é uma
linguagem scripting
dinâmica para a JVM, com
características de Ruby,
Python e Smalltalk
Groovy é uma
linguagem scripting
dinâmica para a JVM, com
características de Ruby,
Python e Smalltalk
O que esse código Java faz?
O que esse código Groovy faz?
Que coisas posso
fazer com Groovy?
Prototipagem de aplicações
Pequenos scripts para automação
Aplicações Web
Builds com
Escrever testes com
Aplicações web em tempo recorde!
RÁPIDO ROBUSTODINÂMICO
RÁPIDO ROBUSTODINÂMICO
RÁPIDO ROBUSTODINÂMICO
1. Crie seu domínio,
Scaffold and
Run!
2. Evolua a aplicação
3. ????
4. PROFIT!
Scripts de criação
$grails create-app
$grails create-domain-class
$grails generate-all
$grails run-app
Um exemplo de domínio
RÁPIDO ROBUSTODINÂMICO
RÁPIDO ROBUSTODINÂMICO
Mixins!
RÁPIDO ROBUSTODINÂMICO
Mixins!
GORM
GORM
RÁPIDO ROBUSTODINÂMICO
RÁPIDO ROBUSTODINÂMICO
RÁPIDO ROBUSTODINÂMICO
Estrutura de
um projeto
Grails
Gradle
Gradle
Technology Radar – Maio 2013
mais de 500 plugins…
Email
Controle de acessos
NoSQL
Data Migrations Caching
Cloud CMS
GWT
Twitter BootstrapSpring Social
E para testar minha
aplicação?
Spock
Geb
Quem usa Grails em
seus projetos?
Vale a pena investir
meu tempo nisso?
Por onde continuar?
groovy.codehaus.org
grails.org
Imagens
utilizadas
Capa
http://www.flickr.com/photos/hildeengwenverbouwen/
3273327176/
Question mark
http://upload.wikimedia.org/wikipedia/en/4/44/
Question_mark_(black_on_white).png
Spock
http://groovy.mn/static/
D4yhWCd1kv6M6wWtHmdVd9HVBGumhq2p6aTHLng0Ggv
.jpg
Mixins
http://farm8.staticflickr.com/
7127/7016071743_0cd594079d_z.jpg
Test Pyramid
http://martinfowler.com/bliki/images/testPyramid/
pyramid.png

Mais conteúdo relacionado

Mais procurados

Super tests - TDC 2014 - Node.js
Super tests - TDC 2014 - Node.jsSuper tests - TDC 2014 - Node.js
Super tests - TDC 2014 - Node.jsMarcos Bérgamo
 
Utilize Groovy nos seus futuros projetos
Utilize Groovy nos seus futuros projetosUtilize Groovy nos seus futuros projetos
Utilize Groovy nos seus futuros projetosmarciowferreira
 
Kotlin on Android
Kotlin on AndroidKotlin on Android
Kotlin on AndroidAline Ayres
 
Itajai .NET React Native
Itajai .NET React NativeItajai .NET React Native
Itajai .NET React NativeLeonardoPrange
 
Introdução ao Habitat
Introdução ao HabitatIntrodução ao Habitat
Introdução ao HabitatIgor Abade
 
Desenvolvendo Aplicativos na Secretaria de Assuntos Legislativos do Ministéri...
Desenvolvendo Aplicativos na Secretaria de Assuntos Legislativos do Ministéri...Desenvolvendo Aplicativos na Secretaria de Assuntos Legislativos do Ministéri...
Desenvolvendo Aplicativos na Secretaria de Assuntos Legislativos do Ministéri...Josafá Filho
 
Ruby On Rails - Porque Utilizar?
Ruby On Rails - Porque Utilizar?Ruby On Rails - Porque Utilizar?
Ruby On Rails - Porque Utilizar?David Ruiz
 
As escolhas do desenvolvedor
As escolhas do desenvolvedorAs escolhas do desenvolvedor
As escolhas do desenvolvedorWillian Molinari
 
Ágil como MacGyver - Caipira Ágil -18-08-2012
Ágil como MacGyver - Caipira Ágil -18-08-2012Ágil como MacGyver - Caipira Ágil -18-08-2012
Ágil como MacGyver - Caipira Ágil -18-08-2012Luca Bastos
 
Estratégias de Build - Visual Studio Summit 2015
Estratégias de Build - Visual Studio Summit 2015Estratégias de Build - Visual Studio Summit 2015
Estratégias de Build - Visual Studio Summit 2015Ricardo Serradas
 
Programar != desenvolver software
Programar != desenvolver softwareProgramar != desenvolver software
Programar != desenvolver softwareElton Minetto
 
Lidando com Equipes de Desenvolvimento
Lidando com Equipes de DesenvolvimentoLidando com Equipes de Desenvolvimento
Lidando com Equipes de Desenvolvimento4Soft
 
Ruby on Rails e o Mercado
Ruby on Rails e o MercadoRuby on Rails e o Mercado
Ruby on Rails e o MercadoJulio Monteiro
 
Desenvolvimento Mobile Hibrido com Ionic e Angular - TDC Floripa 2015
Desenvolvimento Mobile Hibrido com Ionic e Angular - TDC Floripa 2015Desenvolvimento Mobile Hibrido com Ionic e Angular - TDC Floripa 2015
Desenvolvimento Mobile Hibrido com Ionic e Angular - TDC Floripa 2015Rangel Torrezan
 
TDC2016POA | Trilha PHP - Por que utilizar o Laravel?
TDC2016POA | Trilha PHP - Por que utilizar o Laravel?TDC2016POA | Trilha PHP - Por que utilizar o Laravel?
TDC2016POA | Trilha PHP - Por que utilizar o Laravel?tdc-globalcode
 
Scrum Gathering Rio 2014
Scrum Gathering Rio 2014Scrum Gathering Rio 2014
Scrum Gathering Rio 2014Victor Pantoja
 
Desenvolvimento Ágil com Rails GURUSC 2011
Desenvolvimento Ágil com Rails GURUSC 2011Desenvolvimento Ágil com Rails GURUSC 2011
Desenvolvimento Ágil com Rails GURUSC 2011Andre Bernardes
 

Mais procurados (20)

Super tests - TDC 2014 - Node.js
Super tests - TDC 2014 - Node.jsSuper tests - TDC 2014 - Node.js
Super tests - TDC 2014 - Node.js
 
Utilize Groovy nos seus futuros projetos
Utilize Groovy nos seus futuros projetosUtilize Groovy nos seus futuros projetos
Utilize Groovy nos seus futuros projetos
 
Kotlin on Android
Kotlin on AndroidKotlin on Android
Kotlin on Android
 
Itajai .NET React Native
Itajai .NET React NativeItajai .NET React Native
Itajai .NET React Native
 
Introdução ao Habitat
Introdução ao HabitatIntrodução ao Habitat
Introdução ao Habitat
 
Desenvolvendo Aplicativos na Secretaria de Assuntos Legislativos do Ministéri...
Desenvolvendo Aplicativos na Secretaria de Assuntos Legislativos do Ministéri...Desenvolvendo Aplicativos na Secretaria de Assuntos Legislativos do Ministéri...
Desenvolvendo Aplicativos na Secretaria de Assuntos Legislativos do Ministéri...
 
Ruby On Rails - Porque Utilizar?
Ruby On Rails - Porque Utilizar?Ruby On Rails - Porque Utilizar?
Ruby On Rails - Porque Utilizar?
 
As escolhas do desenvolvedor
As escolhas do desenvolvedorAs escolhas do desenvolvedor
As escolhas do desenvolvedor
 
Ágil como MacGyver - Caipira Ágil -18-08-2012
Ágil como MacGyver - Caipira Ágil -18-08-2012Ágil como MacGyver - Caipira Ágil -18-08-2012
Ágil como MacGyver - Caipira Ágil -18-08-2012
 
Estratégias de Build - Visual Studio Summit 2015
Estratégias de Build - Visual Studio Summit 2015Estratégias de Build - Visual Studio Summit 2015
Estratégias de Build - Visual Studio Summit 2015
 
Programar != desenvolver software
Programar != desenvolver softwareProgramar != desenvolver software
Programar != desenvolver software
 
Lidando com Equipes de Desenvolvimento
Lidando com Equipes de DesenvolvimentoLidando com Equipes de Desenvolvimento
Lidando com Equipes de Desenvolvimento
 
Jornada cientifica kotlin
Jornada cientifica   kotlinJornada cientifica   kotlin
Jornada cientifica kotlin
 
Ruby on Rails e o Mercado
Ruby on Rails e o MercadoRuby on Rails e o Mercado
Ruby on Rails e o Mercado
 
Desenvolvimento Mobile Hibrido com Ionic e Angular - TDC Floripa 2015
Desenvolvimento Mobile Hibrido com Ionic e Angular - TDC Floripa 2015Desenvolvimento Mobile Hibrido com Ionic e Angular - TDC Floripa 2015
Desenvolvimento Mobile Hibrido com Ionic e Angular - TDC Floripa 2015
 
TDC2016POA | Trilha PHP - Por que utilizar o Laravel?
TDC2016POA | Trilha PHP - Por que utilizar o Laravel?TDC2016POA | Trilha PHP - Por que utilizar o Laravel?
TDC2016POA | Trilha PHP - Por que utilizar o Laravel?
 
Scrum Gathering Rio 2014
Scrum Gathering Rio 2014Scrum Gathering Rio 2014
Scrum Gathering Rio 2014
 
Desenvolvimento Ágil com Rails GURUSC 2011
Desenvolvimento Ágil com Rails GURUSC 2011Desenvolvimento Ágil com Rails GURUSC 2011
Desenvolvimento Ágil com Rails GURUSC 2011
 
Ruby on rails
Ruby on railsRuby on rails
Ruby on rails
 
Zf campus party_2011
Zf campus party_2011Zf campus party_2011
Zf campus party_2011
 

Semelhante a Apresentando Groovy e Grails

Ruby, Simples e Expressivo
Ruby, Simples e ExpressivoRuby, Simples e Expressivo
Ruby, Simples e ExpressivoRodrigo Martins
 
TDC2018SP | Trilha Go - Por que o Golang veio ao mundo?
TDC2018SP | Trilha Go - Por que o Golang veio ao mundo?TDC2018SP | Trilha Go - Por que o Golang veio ao mundo?
TDC2018SP | Trilha Go - Por que o Golang veio ao mundo?tdc-globalcode
 
React Native - Experiência Nativa para o usuário e experiência Web para o des...
React Native - Experiência Nativa para o usuário e experiência Web para o des...React Native - Experiência Nativa para o usuário e experiência Web para o des...
React Native - Experiência Nativa para o usuário e experiência Web para o des...Emiliano Barbosa
 
Desenvolvimento web com groovy e grails.
Desenvolvimento web com groovy e grails.Desenvolvimento web com groovy e grails.
Desenvolvimento web com groovy e grails.Bryan Ollivie
 
Por que devo aprender JavaScript?
Por que devo aprender JavaScript?Por que devo aprender JavaScript?
Por que devo aprender JavaScript?Breno Alves
 
Ruby on rails impressione a você mesmo, seu chefe e seu cliente
Ruby on rails  impressione a você mesmo, seu chefe e seu clienteRuby on rails  impressione a você mesmo, seu chefe e seu cliente
Ruby on rails impressione a você mesmo, seu chefe e seu clienteRodrigo Urubatan
 
IronRuby na RubyConfBR 2010 - Vinicius Quaiato
IronRuby na RubyConfBR 2010 - Vinicius QuaiatoIronRuby na RubyConfBR 2010 - Vinicius Quaiato
IronRuby na RubyConfBR 2010 - Vinicius QuaiatoVinicius Quaiato
 
IronRuby na RubyConfBR 2010 - Vinicius Quaiato
IronRuby na RubyConfBR 2010 - Vinicius QuaiatoIronRuby na RubyConfBR 2010 - Vinicius Quaiato
IronRuby na RubyConfBR 2010 - Vinicius QuaiatoVinicius Quaiato
 
Grails, o que isso quer dizer?
Grails, o que isso quer dizer?Grails, o que isso quer dizer?
Grails, o que isso quer dizer?Gilliard Cordeiro
 
Slides do curso Programação web com RubyOnRails
Slides do curso Programação web com RubyOnRailsSlides do curso Programação web com RubyOnRails
Slides do curso Programação web com RubyOnRailsTiago Godinho
 
Java Scripting - Linguagens Interpretadas pelo Java
Java Scripting - Linguagens Interpretadas pelo JavaJava Scripting - Linguagens Interpretadas pelo Java
Java Scripting - Linguagens Interpretadas pelo JavaPaulo César M Jeveaux
 
Ruby On Rails: Por que sua Startup deve usar?
Ruby On Rails: Por que sua Startup deve usar?Ruby On Rails: Por que sua Startup deve usar?
Ruby On Rails: Por que sua Startup deve usar?Luiz Carvalho
 
10 Linguagens de programação essenciais
10 Linguagens de programação essenciais10 Linguagens de programação essenciais
10 Linguagens de programação essenciaisAlexandre Oliveira
 
Groovy + Grails + Netbeans
Groovy + Grails + NetbeansGroovy + Grails + Netbeans
Groovy + Grails + NetbeansElenilson Vieira
 
Ruby on Rails Colocando a web nos trilhos
Ruby on Rails Colocando a web nos trilhosRuby on Rails Colocando a web nos trilhos
Ruby on Rails Colocando a web nos trilhosjpaulolins
 
ruby on rails e o mercado
ruby on rails e o mercadoruby on rails e o mercado
ruby on rails e o mercadoelliando dias
 

Semelhante a Apresentando Groovy e Grails (20)

Ruby, Simples e Expressivo
Ruby, Simples e ExpressivoRuby, Simples e Expressivo
Ruby, Simples e Expressivo
 
TDC2018SP | Trilha Go - Por que o Golang veio ao mundo?
TDC2018SP | Trilha Go - Por que o Golang veio ao mundo?TDC2018SP | Trilha Go - Por que o Golang veio ao mundo?
TDC2018SP | Trilha Go - Por que o Golang veio ao mundo?
 
React Native - Experiência Nativa para o usuário e experiência Web para o des...
React Native - Experiência Nativa para o usuário e experiência Web para o des...React Native - Experiência Nativa para o usuário e experiência Web para o des...
React Native - Experiência Nativa para o usuário e experiência Web para o des...
 
Desenvolvimento web com groovy e grails.
Desenvolvimento web com groovy e grails.Desenvolvimento web com groovy e grails.
Desenvolvimento web com groovy e grails.
 
Teste Watir
Teste WatirTeste Watir
Teste Watir
 
Por que devo aprender JavaScript?
Por que devo aprender JavaScript?Por que devo aprender JavaScript?
Por que devo aprender JavaScript?
 
Ruby on rails impressione a você mesmo, seu chefe e seu cliente
Ruby on rails  impressione a você mesmo, seu chefe e seu clienteRuby on rails  impressione a você mesmo, seu chefe e seu cliente
Ruby on rails impressione a você mesmo, seu chefe e seu cliente
 
IronRuby na RubyConfBR 2010 - Vinicius Quaiato
IronRuby na RubyConfBR 2010 - Vinicius QuaiatoIronRuby na RubyConfBR 2010 - Vinicius Quaiato
IronRuby na RubyConfBR 2010 - Vinicius Quaiato
 
IronRuby na RubyConfBR 2010 - Vinicius Quaiato
IronRuby na RubyConfBR 2010 - Vinicius QuaiatoIronRuby na RubyConfBR 2010 - Vinicius Quaiato
IronRuby na RubyConfBR 2010 - Vinicius Quaiato
 
Grails, o que isso quer dizer?
Grails, o que isso quer dizer?Grails, o que isso quer dizer?
Grails, o que isso quer dizer?
 
Slides do curso Programação web com RubyOnRails
Slides do curso Programação web com RubyOnRailsSlides do curso Programação web com RubyOnRails
Slides do curso Programação web com RubyOnRails
 
Apresentação sobre JRuby
Apresentação sobre JRubyApresentação sobre JRuby
Apresentação sobre JRuby
 
Desenvolvimento agil ifc
Desenvolvimento agil ifcDesenvolvimento agil ifc
Desenvolvimento agil ifc
 
Java Scripting - Linguagens Interpretadas pelo Java
Java Scripting - Linguagens Interpretadas pelo JavaJava Scripting - Linguagens Interpretadas pelo Java
Java Scripting - Linguagens Interpretadas pelo Java
 
Ruby On Rails: Por que sua Startup deve usar?
Ruby On Rails: Por que sua Startup deve usar?Ruby On Rails: Por que sua Startup deve usar?
Ruby On Rails: Por que sua Startup deve usar?
 
10 Linguagens de programação essenciais
10 Linguagens de programação essenciais10 Linguagens de programação essenciais
10 Linguagens de programação essenciais
 
Groovy + Grails + Netbeans
Groovy + Grails + NetbeansGroovy + Grails + Netbeans
Groovy + Grails + Netbeans
 
Aula00
Aula00Aula00
Aula00
 
Ruby on Rails Colocando a web nos trilhos
Ruby on Rails Colocando a web nos trilhosRuby on Rails Colocando a web nos trilhos
Ruby on Rails Colocando a web nos trilhos
 
ruby on rails e o mercado
ruby on rails e o mercadoruby on rails e o mercado
ruby on rails e o mercado
 

Mais de Ricardo Wendell Rodrigues da Silveira (6)

Data Lakes com Hadoop e Spark: Agile Analytics na prática
Data Lakes com Hadoop e Spark: Agile Analytics na práticaData Lakes com Hadoop e Spark: Agile Analytics na prática
Data Lakes com Hadoop e Spark: Agile Analytics na prática
 
Data Science e Python: entendendo e aplicando
Data Science e Python: entendendo e aplicandoData Science e Python: entendendo e aplicando
Data Science e Python: entendendo e aplicando
 
Você, apresentador
Você, apresentadorVocê, apresentador
Você, apresentador
 
Kintsugi: The beauty in imperfection
Kintsugi: The beauty in imperfectionKintsugi: The beauty in imperfection
Kintsugi: The beauty in imperfection
 
Principal Component Analysis
Principal Component AnalysisPrincipal Component Analysis
Principal Component Analysis
 
Machine learning
Machine learningMachine learning
Machine learning
 

Apresentando Groovy e Grails