• Save
Minicurso grails
Upcoming SlideShare
Loading in...5
×
 

Minicurso grails

on

  • 1,024 views

 

Statistics

Views

Total Views
1,024
Views on SlideShare
1,024
Embed Views
0

Actions

Likes
5
Downloads
0
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

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

Minicurso grails Minicurso grails Presentation Transcript

  • O “Santo Graal” do desenvolvimento Web! Natã Melo (nata.venancio.melo@gmail.com) Créditos: Diego Cavalcantiquarta-feira, 9 de maio de 2012
  • quarta-feira, 9 de maio de 2012
  • Olhando o passadoquarta-feira, 9 de maio de 2012
  • • Perda de tempo para criar ambiente de desenvolvimento ... • ... e para configurar uma aplicação Olhando o passadoquarta-feira, 9 de maio de 2012
  • • Muitas tarefas repetitivas executadas manualmente • Muito tempo para aprender tecnologias (Spring, Hibernate, JSF, etc) Olhando o passadoquarta-feira, 9 de maio de 2012
  • • Baixa produtividade no desenvolvimento Web Olhando o passadoquarta-feira, 9 de maio de 2012
  • Resultado...quarta-feira, 9 de maio de 2012
  • Temos solução para esses problemas?quarta-feira, 9 de maio de 2012
  • Ruby on Rails CoC: Convention over Configuration DRY: Don’t Repeat Yourselfquarta-feira, 9 de maio de 2012
  • Ruby on Rails Stack Completo Expansibilidadequarta-feira, 9 de maio de 2012
  • E por que não Ruby on Rails? O investimento feito na equipe e nas ferramentas com Java não deve se perder!quarta-feira, 9 de maio de 2012
  • Desenvolvimento Web <<Rápido e com qualidade>>quarta-feira, 9 de maio de 2012
  • Framework baseado em MVC para desenvolvimento web com alta produtividadequarta-feira, 9 de maio de 2012
  • Padrão MVCquarta-feira, 9 de maio de 2012
  • quarta-feira, 9 de maio de 2012
  • •Spring •Hibernate •Groovy •Java •SiteMesh •Jetty •Apache Antquarta-feira, 9 de maio de 2012
  • Integração simples com o banco de dados Hibernate transparente para o programador +quarta-feira, 9 de maio de 2012
  • Arquitetura Grailsquarta-feira, 9 de maio de 2012
  • Casos de sucesso Em 2007, eram 7 mil downloads por mês. Em 2008, passou para 70 mil! Mantém a média atualmente!quarta-feira, 9 de maio de 2012
  • Casos de sucesso + 150 milhões de usuáriosquarta-feira, 9 de maio de 2012
  • Casos de sucesso + 1 bilhão de páginas acessadas por mêsquarta-feira, 9 de maio de 2012
  • quarta-feira, 9 de maio de 2012
  • Comunidade vibrante • http://grails.markmail.org/ • + de 200.000 mensagens • Em média 54 mensagens por diaquarta-feira, 9 de maio de 2012
  • Pausa para alguns conceitosquarta-feira, 9 de maio de 2012
  • Linguagem dinâmica e ágil para JVM Java com esteróides Todo o poder de Java mas com recursos poderosos emprestados de outras linguagens Integração com objetos e bibliotecas Javaquarta-feira, 9 de maio de 2012
  • public class Minicurso { private String titulo; public Minicurso (String titulo){ this.titulo = titulo; } public String getTitulo() { return titulo; } public void setTitulo(String titulo) { this.titulo = titulo; } public String getMensagem (){ return "Título do Minicurso: " + this.titulo; } }quarta-feira, 9 de maio de 2012
  • public class Minicurso { private String titulo; public Minicurso (String titulo){ this.titulo = titulo; } public String getTitulo() { return titulo; } public void setTitulo(String titulo) { this.titulo = titulo; } public String getMensagem (){ return "Título do Minicurso: " + this.titulo; } }quarta-feira, 9 de maio de 2012
  • E os esteróides?quarta-feira, 9 de maio de 2012
  • “Groovyficando” o código class Minicurso { def titulo def getMensagem (){ "Título do Minicurso: ${titulo}" } } miniCurso = new Minicurso (titulo = "Grails") miniCurso.getMessagem ()quarta-feira, 9 de maio de 2012
  • Mais facilidades... Null Checking if (obj != null) ... if (obj) ...quarta-feira, 9 de maio de 2012
  • Mais facilidades... Null Checking Object obj = new Object (); String str = "Valor do objeto: " + obj == null ? "null" : obj.toString(); Object obj = new Object() String str = "Valor do objeto ${obj?.toString()}"quarta-feira, 9 de maio de 2012
  • Mais facilidades... Mapas import java.util.HashMap; import java.util.Map; Map m = new HashMap(); m.put("br", "Brasil"); m.put("us", "USA"); m = [br:"Brasil", us:"USA"]quarta-feira, 9 de maio de 2012
  • Mais facilidades... Looping for (int i = 0; i < list.size(); i++) { Object o = list.get(i); o.method(); } list.each(){ it.method() }quarta-feira, 9 de maio de 2012
  • Mais facilidades... Looping for (i in 0..<10) { print i }quarta-feira, 9 de maio de 2012
  • Mais facilidades... Return String getEdicao (num){ "Edicao: ${num} " }quarta-feira, 9 de maio de 2012
  • E ainda tem muito mais! http://groovy.codehaus.org/User+Guide quarta-feira, 9 de maio de 2012
  • http://www.springsource.com/ developer/stso http://netbeans.org/downloads/ index.html http://www.eclipse.org/ downloads/quarta-feira, 9 de maio de 2012
  • Mãos à obraquarta-feira, 9 de maio de 2012
  • Primeiros Passos Instalação • Download: http://grails.org/ Download • Descompactar a pasta • Configurar variável de ambiente GRAILS_HOME • Detalhes: http://grails.org/ Installation+Portuguesequarta-feira, 9 de maio de 2012
  • Comandos básicos • grails create-app • grails create-domain-class • grails generate-all • grails install-plugin • grails run-app • grails war grails helpquarta-feira, 9 de maio de 2012
  • Estrutura de diretórios e convenções de nomequarta-feira, 9 de maio de 2012
  • Você percebeu? • Nenhum arquivo XML de configuração • Nenhum arquivo de mapeamento • Nenhuma configuração de banco de dados • Nenhuma instalação de servidor de aplicação Tem muita mágica por baixo disso tudo!quarta-feira, 9 de maio de 2012
  • Domain Class <<BD Simplificado>> Table Album class Album { String title id title artist release_date String artist Date releaseDate static hasMany = [songs: Song] } Table Song class Song { id title duration album_id String title Double duration }quarta-feira, 9 de maio de 2012
  • Vamos criar uma simples aplicação!quarta-feira, 9 de maio de 2012
  • CRUD Criar Recuperar Atualizar (Update) Remover (Delete)quarta-feira, 9 de maio de 2012
  • Constraints class Usuario { String username String passwd String nomeCompleto String identidade static constraints = { username(size:6..15, matches:"[a-zA-Z0-9]+", unique:true, blank:false, nullable:false) passwd(size:6..100, matches:"[a-zA-Z0-9]+", blank:false, nullable:false, password:true) nomeCompleto(size:1..50, blank:false, nullable:false) identidade(size:1..20, blank:false, nullable:false, matches:"[0-9]+") } } Ler documentação para ver todas as restrições!quarta-feira, 9 de maio de 2012
  • Consultas ao BD Table Album class Album { String title id title artist release_date String artist Date releaseDate static hasMany = [songs: Song] } Table Song class Song { id title duration album_id String title Double duration } Métodos default: •Album.count() •Album.get(1) •Song.list() •song.save() •song.delete() •...quarta-feira, 9 de maio de 2012
  • Consultas ao BD Table Album class Album { String title id title artist release_date String artist Date releaseDate static hasMany = [songs: Song] } Table Song class Song { id title duration album_id String title Double duration } Buscas dinâmicas: •Song.findByTitle ("Parachutes") •Album.findByArtist ("Jotta A") •Song.findByDuration(3.24)quarta-feira, 9 de maio de 2012
  • “Grails não é somente um framework, mas uma plataforma” (Graeme Rocher) Plugins permitem compor aplicações de forma rápida, sem muita configuração!quarta-feira, 9 de maio de 2012
  • Mais de 750 plug-ins (Sem contar as APIs de Java) • Testes: Functional-test, Fitness, Code coverage, etc. • Interfaces Robustas: Flex, GWT, RichUI, etc. • Segurança: Spring Security, Apache Shiro, OpenID, etc. • Integração: JasperReports, JMS, Google App Engine, Facebook,Twitter, etc.quarta-feira, 9 de maio de 2012
  • Material de Apoio http://grails.org/doc/2.0.3/ http://grails.org/Tutorials http://grails.org/screencastsquarta-feira, 9 de maio de 2012
  • Mundo perfeito!?quarta-feira, 9 de maio de 2012
  • O que você precisa lembrar? Grails torna o desenvolvimento web simples, sem sacrificar a qualidade da aplicação!quarta-feira, 9 de maio de 2012
  • Dúvidas ?quarta-feira, 9 de maio de 2012
  • O “Santo Graal” do desenvolvimento Web! Natã Melo (nata.venancio.melo@gmail.com) Créditos: Diego Cavalcantiquarta-feira, 9 de maio de 2012