O “Santo Graal” do                                  desenvolvimento Web!                                              Natã...
quarta-feira, 9 de maio de 2012
Olhando o passadoquarta-feira, 9 de maio de 2012
• Perda de tempo para criar                                  ambiente de desenvolvimento ...                             •...
• Muitas tarefas repetitivas                                    executadas manualmente                                  • ...
• Baixa produtividade no                                   desenvolvimento Web                                  Olhando o ...
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      ...
Ruby on Rails                                  Stack Completo                                  Expansibilidadequarta-feira...
E por que não Ruby on Rails?                          O investimento feito                            na equipe e nas     ...
Desenvolvimento Web                                  <<Rápido e com qualidade>>quarta-feira, 9 de maio de 2012
Framework baseado em MVC                       para desenvolvimento web                         com alta produtividadequar...
Padrão MVCquarta-feira, 9 de maio de 2012
quarta-feira, 9 de maio de 2012
•Spring          •Hibernate          •Groovy          •Java          •SiteMesh          •Jetty          •Apache Antquarta-...
Integração simples com o banco de dados                        Hibernate transparente para o programador                  ...
Arquitetura Grailsquarta-feira, 9 de maio de 2012
Casos de sucesso                                             Em 2007, eram                                        7 mil do...
Casos de sucesso                                       + 150 milhões de usuáriosquarta-feira, 9 de maio de 2012
Casos de sucesso                                         + 1 bilhão de páginas                                          ac...
quarta-feira, 9 de maio de 2012
Comunidade vibrante                                  • http://grails.markmail.org/                                  • + de...
Pausa para alguns                                      conceitosquarta-feira, 9 de maio de 2012
Linguagem dinâmica e ágil para JVM                                            Java com esteróides                         ...
public class Minicurso {                    	                    	 private String titulo;                    	            ...
public class Minicurso {                  	                  	 private String titulo;                  	                  ...
E os esteróides?quarta-feira, 9 de maio de 2012
“Groovyficando”                                     o código                                      class Minicurso {        ...
Mais facilidades...                                    Null Checking                                          if (obj != n...
Mais facilidades...                                    Null Checking                                        Object obj = n...
Mais facilidades...                                      Mapas                                         import java.util.Ha...
Mais facilidades...                                                Looping                                              fo...
Mais facilidades...                                       Looping                                              for (i in 0...
Mais facilidades...                                        Return                                         String getEdicao...
E ainda tem muito mais!                                   http://groovy.codehaus.org/User+Guide	quarta-feira, 9 de maio de...
http://www.springsource.com/                                          developer/stso                                  http...
Mãos à obraquarta-feira, 9 de maio de 2012
Primeiros Passos                                        Instalação                                  • Download: http://gra...
Comandos básicos                            •     grails create-app                            •     grails create-domain-...
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 mapeament...
Domain Class                                  <<BD Simplificado>>                                          Table Album   cl...
Vamos criar uma                                  simples aplicação!quarta-feira, 9 de maio de 2012
CRUD                                        Criar                                      Recuperar                          ...
Constraints    class Usuario {          String      username          String      passwd          String      nomeCompleto...
Consultas ao BD                                                                Table Album                          class ...
Consultas ao BD                                                                Table Album                          class ...
“Grails não é somente um                                                       framework, mas uma                         ...
Mais de 750 plug-ins                                                         (Sem contar as APIs de Java)                 ...
Material de Apoio                 http://grails.org/doc/2.0.3/                                          http://grails.org/...
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!quart...
Dúvidas ?quarta-feira, 9 de maio de 2012
O “Santo Graal” do                                  desenvolvimento Web!                                              Natã...
Próximos SlideShares
Carregando em…5
×

Minicurso grails

1.097 visualizações

Publicada em

Publicada em: Tecnologia
0 comentários
6 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
1.097
No SlideShare
0
A partir de incorporações
0
Número de incorporações
5
Ações
Compartilhamentos
0
Downloads
0
Comentários
0
Gostaram
6
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Minicurso grails

  1. 1. O “Santo Graal” do desenvolvimento Web! Natã Melo (nata.venancio.melo@gmail.com) Créditos: Diego Cavalcantiquarta-feira, 9 de maio de 2012
  2. 2. quarta-feira, 9 de maio de 2012
  3. 3. Olhando o passadoquarta-feira, 9 de maio de 2012
  4. 4. • Perda de tempo para criar ambiente de desenvolvimento ... • ... e para configurar uma aplicação Olhando o passadoquarta-feira, 9 de maio de 2012
  5. 5. • Muitas tarefas repetitivas executadas manualmente • Muito tempo para aprender tecnologias (Spring, Hibernate, JSF, etc) Olhando o passadoquarta-feira, 9 de maio de 2012
  6. 6. • Baixa produtividade no desenvolvimento Web Olhando o passadoquarta-feira, 9 de maio de 2012
  7. 7. Resultado...quarta-feira, 9 de maio de 2012
  8. 8. Temos solução para esses problemas?quarta-feira, 9 de maio de 2012
  9. 9. Ruby on Rails CoC: Convention over Configuration DRY: Don’t Repeat Yourselfquarta-feira, 9 de maio de 2012
  10. 10. Ruby on Rails Stack Completo Expansibilidadequarta-feira, 9 de maio de 2012
  11. 11. 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
  12. 12. Desenvolvimento Web <<Rápido e com qualidade>>quarta-feira, 9 de maio de 2012
  13. 13. Framework baseado em MVC para desenvolvimento web com alta produtividadequarta-feira, 9 de maio de 2012
  14. 14. Padrão MVCquarta-feira, 9 de maio de 2012
  15. 15. quarta-feira, 9 de maio de 2012
  16. 16. •Spring •Hibernate •Groovy •Java •SiteMesh •Jetty •Apache Antquarta-feira, 9 de maio de 2012
  17. 17. Integração simples com o banco de dados Hibernate transparente para o programador +quarta-feira, 9 de maio de 2012
  18. 18. Arquitetura Grailsquarta-feira, 9 de maio de 2012
  19. 19. 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
  20. 20. Casos de sucesso + 150 milhões de usuáriosquarta-feira, 9 de maio de 2012
  21. 21. Casos de sucesso + 1 bilhão de páginas acessadas por mêsquarta-feira, 9 de maio de 2012
  22. 22. quarta-feira, 9 de maio de 2012
  23. 23. Comunidade vibrante • http://grails.markmail.org/ • + de 200.000 mensagens • Em média 54 mensagens por diaquarta-feira, 9 de maio de 2012
  24. 24. Pausa para alguns conceitosquarta-feira, 9 de maio de 2012
  25. 25. 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
  26. 26. 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
  27. 27. 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
  28. 28. E os esteróides?quarta-feira, 9 de maio de 2012
  29. 29. “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
  30. 30. Mais facilidades... Null Checking if (obj != null) ... if (obj) ...quarta-feira, 9 de maio de 2012
  31. 31. 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
  32. 32. 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
  33. 33. 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
  34. 34. Mais facilidades... Looping for (i in 0..<10) { print i }quarta-feira, 9 de maio de 2012
  35. 35. Mais facilidades... Return String getEdicao (num){ "Edicao: ${num} " }quarta-feira, 9 de maio de 2012
  36. 36. E ainda tem muito mais! http://groovy.codehaus.org/User+Guide quarta-feira, 9 de maio de 2012
  37. 37. http://www.springsource.com/ developer/stso http://netbeans.org/downloads/ index.html http://www.eclipse.org/ downloads/quarta-feira, 9 de maio de 2012
  38. 38. Mãos à obraquarta-feira, 9 de maio de 2012
  39. 39. 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
  40. 40. 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
  41. 41. Estrutura de diretórios e convenções de nomequarta-feira, 9 de maio de 2012
  42. 42. 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
  43. 43. 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
  44. 44. Vamos criar uma simples aplicação!quarta-feira, 9 de maio de 2012
  45. 45. CRUD Criar Recuperar Atualizar (Update) Remover (Delete)quarta-feira, 9 de maio de 2012
  46. 46. 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
  47. 47. 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
  48. 48. 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
  49. 49. “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
  50. 50. 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
  51. 51. Material de Apoio http://grails.org/doc/2.0.3/ http://grails.org/Tutorials http://grails.org/screencastsquarta-feira, 9 de maio de 2012
  52. 52. Mundo perfeito!?quarta-feira, 9 de maio de 2012
  53. 53. 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
  54. 54. Dúvidas ?quarta-feira, 9 de maio de 2012
  55. 55. O “Santo Graal” do desenvolvimento Web! Natã Melo (nata.venancio.melo@gmail.com) Créditos: Diego Cavalcantiquarta-feira, 9 de maio de 2012

×