{"id":1016,"date":"2011-11-15T21:14:10","date_gmt":"2011-11-16T00:14:10","guid":{"rendered":"https:\/\/devkico.itexto.com.br\/?page_id=1016"},"modified":"2013-08-04T09:23:08","modified_gmt":"2013-08-04T12:23:08","slug":"grails-um-guia-em-video","status":"publish","type":"page","link":"https:\/\/devkico.itexto.com.br\/?page_id=1016","title":{"rendered":"Groovy\/Grails: um guia em v\u00eddeo"},"content":{"rendered":"<p>Nos pr\u00f3ximos meses (a partir de 15\/11\/2011) pretendo liberar uma s\u00e9rie de v\u00eddeos sobre Groovy\/Grails entitulada &#8220;Grails: o que e porqu\u00ea?&#8221;. S\u00e3o na realidade uma atualiza\u00e7\u00e3o BRUTA do meu antigo curso de Grails feito para a DevMedia entre 2009 e 2010 sob uma nova \u00f3tica: 100% abertos e com um aprofundamento bem maior, visto que meu conhecimento sobre o assunto cresceu bastante de l\u00e1 pra c\u00e1.<\/p>\n<p>Conforme novos v\u00eddeos forem sendo criados, eu os divulgarei na se\u00e7\u00e3o de not\u00edcias do <a href=\"http:\/\/www.grailsbrasil.com.br\">Grails Brasil<\/a> e tamb\u00e9m pelo meu Twitter (@loboweissmann).<\/p>\n<p><strong>C\u00f3digo fonte<\/strong><\/p>\n<p>Todo o material produzido no decorrer deste curso est\u00e1 disponivel <a href=\"https:\/\/github.com\/loboweissmann\/itexto_curso_grails\">neste<\/a> reposit\u00f3rio do GitHub.<\/p>\n<p><strong>Sobre coment\u00e1rios<\/strong><\/p>\n<p>Todo coment\u00e1rio deve ser feito no post relacionado ao v\u00eddeo.<\/p>\n<h2>Introdu\u00e7\u00e3o &gt; Grails: o qu\u00ea e porqu\u00ea?<\/h2>\n<p>Publicado em 6\/11\/2011<\/p>\n<p>Neste video tento justificar as raz\u00f5es que levaram \u00e0 cria\u00e7\u00e3o do Grails e porqu\u00ea \u00e9 fundamental para a plataforma Java EE. \u00c9 tamb\u00e9m feito um live coding r\u00e1pido para que os interessados possam ter uma vis\u00e3o r\u00e1pida do modo de trabalho oferecido pela ferramenta.<\/p>\n<p><iframe loading=\"lazy\" src=\"http:\/\/player.vimeo.com\/video\/31700911?title=0&amp;byline=0&amp;portrait=0\" height=\"225\" width=\"400\" allowfullscreen=\"\" frameborder=\"0\"><\/iframe><\/p>\n<p><a href=\"https:\/\/devkico.itexto.com.br\/?p=1013\">Post relacionado<\/a><\/p>\n<h2>Aula 1: preparando o ambiente e pondo a m\u00e3o na massa<\/h2>\n<p>Como o pr\u00f3prio nome diz, meu objetivo neste v\u00eddeo foi o de expor a prepara\u00e7\u00e3o do ambiente em cima do qual nosso curso ser\u00e1 feito. Desenvolvo as seguintes atividades:<\/p>\n<ul>\n<li>Instala\u00e7\u00e3o do Grails: executo o processo no Windows 7 (mas no reposit\u00f3rio h\u00e1 um texto explicando como proceder caso voc\u00ea seja um usu\u00e1rio Linux ou Mac)<\/li>\n<li>\u00c9 apresentada a aplica\u00e7\u00e3o base: um gerenciador de estoque. \u00c9 um exemplo suficientemente complexo para que eu possa em aulas posteriores me aprofundar (e BEM) nas entranhas do Grails<\/li>\n<li>Inicio o desenvolvimento b\u00e1sico do projeto implementando as classes de dom\u00ednio e criando o CRUD b\u00e1sico via scaffolding din\u00e2mico. Neste processo, daremos uma pincelada em cima dos seguintes t\u00f3picos:\n<ul>\n<li>A estrutura b\u00e1sica de diret\u00f3rios<\/li>\n<li>Classes de dom\u00ednio: defini\u00e7\u00e3o de atributos e constraints<\/li>\n<li>Scaffolding din\u00e2mico<\/li>\n<li>Configura\u00e7\u00e3o do acesso a dados<\/li>\n<\/ul>\n<\/li>\n<li>Finalmente, \u00e9 gerado o pacote que pode ser instalado em praticamente todos os servidores de aplica\u00e7\u00e3o Java EE do mercado.<\/li>\n<\/ul>\n<p><iframe loading=\"lazy\" src=\"http:\/\/player.vimeo.com\/video\/32167982?title=0&amp;byline=0&amp;portrait=0\" height=\"225\" width=\"400\" allowfullscreen=\"\" frameborder=\"0\"><\/iframe><\/p>\n<p><a href=\"https:\/\/devkico.itexto.com.br\/?p=1032\">Post relacionado<\/a><\/p>\n<h2>Aula 2: Groovy: o Java que sempre quis<\/h2>\n<ul>\n<li>O que \u00e9 Groovy &#8211; (99% de chance de voc\u00ea j\u00e1 saber :) )<\/li>\n<li>Como instalar &#8211; (opcional se voc\u00ea s\u00f3 vai trabalhar com Grails)<\/li>\n<li>Principais diferen\u00e7as sint\u00e1ticas em rela\u00e7\u00e3o ao Java<\/li>\n<li>Melhorias no tratamento de strings e n\u00fameros<\/li>\n<li>O que v\u00eam a ser a tal tipagem din\u00e2mica?<\/li>\n<\/ul>\n<p><iframe loading=\"lazy\" src=\"http:\/\/player.vimeo.com\/video\/32398245?title=0&amp;byline=0&amp;portrait=0\" height=\"300\" width=\"400\" allowfullscreen=\"\" frameborder=\"0\"><\/iframe><\/p>\n<p><a href=\"https:\/\/devkico.itexto.com.br\/?p=1043\">Post relacionado<\/a><\/p>\n<h2>Aula 3: Groovy e seus mutantes<\/h2>\n<ul>\n<li>O que s\u00e3o as tais closures<\/li>\n<li>Invocando m\u00e9todos e acessando propriedades din\u00e2micamente<\/li>\n<li>Alterando suas classes em tempo de execu\u00e7\u00e3o<\/li>\n<li>Fazendo um mexid\u00e3o de classes com mixins<\/li>\n<\/ul>\n<p><iframe loading=\"lazy\" src=\"http:\/\/player.vimeo.com\/video\/33120973?title=0&amp;byline=0&amp;portrait=0\" height=\"300\" width=\"400\" allowfullscreen=\"\" frameborder=\"0\"><\/iframe><\/p>\n<h2>Groovy Console: 1001 utilidades<\/h2>\n<p>Uma ferramenta que todo programador Groovy\/Grails possui instalado por\u00e9m muitos n\u00e3o sabem para que serve. Segue aqui uma breve descri\u00e7\u00e3o. :)<\/p>\n<p>Link para o v\u00eddeo:\u00a0<a href=\"http:\/\/www.youtube.com\/watch?v=4DAWy3ikKy4\">http:\/\/www.youtube.com\/watch?v=4DAWy3ikKy4<\/a><a href=\"http:\/\/www.youtube.com\/watch?v=4DAWy3ikKy4&amp;feature=c4-overview&amp;list=UUkrEo2MbvSJbeK8bp_VjHGg\"><br \/>\n<\/a><\/p>\n<h2>Cole\u00e7\u00f5es com Groovy<\/h2>\n<p>Entenda como a linguagem Groovy facilita o uso das cole\u00e7\u00f5es ao incorpor\u00e1-las em sua sintaxe b\u00e1sica.<\/p>\n<p>Link para o v\u00eddeo:\u00a0<a href=\"http:\/\/www.youtube.com\/watch?v=WkQVkIVJHxA&amp;feature=c4-overview&amp;list=UUkrEo2MbvSJbeK8bp_VjHGg\">http:\/\/www.youtube.com\/watch?v=WkQVkIVJHxA<\/a><\/p>\n<h2>Groovy e as Closures<\/h2>\n<p>Entenda o que s\u00e3o as t\u00e3o faladas closures e para que servem de uma forma bem r\u00e1pida e simples.<\/p>\n<p>Link para o v\u00eddeo:\u00a0<a href=\"http:\/\/www.youtube.com\/watch?v=lqYfiax5hdo&amp;feature=youtu.be\">http:\/\/www.youtube.com\/watch?v=lqYfiax5hdo&amp;feature=youtu.be<\/a><\/p>\n<h2>Embarcando Groovy em Java<\/h2>\n<p>Aprenda como expandir seus sistemas usando a linguagem Groovy. Entenda como \u00e9 f\u00e1cil executar scripts Groovy a partir do Java e tamb\u00e9m conhe\u00e7a um perigo envolvendo a t\u00e9cnica, cujo problema pretendo mitigar em um pr\u00f3ximo v\u00eddeo.<\/p>\n<p>Link para o v\u00eddeo:\u00a0<a href=\"http:\/\/www.youtube.com\/watch?v=_njSd-efuCo&amp;feature=youtu.be\">http:\/\/www.youtube.com\/watch?v=_njSd-efuCo&amp;feature=youtu.be<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Nos pr\u00f3ximos meses (a partir de 15\/11\/2011) pretendo liberar uma s\u00e9rie de v\u00eddeos sobre Groovy\/Grails entitulada &#8220;Grails: o que e porqu\u00ea?&#8221;. S\u00e3o na realidade uma atualiza\u00e7\u00e3o BRUTA do meu antigo curso de Grails feito para a DevMedia entre 2009 e 2010 sob uma nova \u00f3tica: 100% abertos e com um aprofundamento bem maior, visto que [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"open","ping_status":"open","template":"","meta":{"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""}},"jetpack_post_was_ever_published":false,"footnotes":""},"class_list":["post-1016","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Groovy\/Grails: um guia em v\u00eddeo - \/dev\/Kico<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/devkico.itexto.com.br\/?page_id=1016\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Groovy\/Grails: um guia em v\u00eddeo - \/dev\/Kico\" \/>\n<meta property=\"og:description\" content=\"Nos pr\u00f3ximos meses (a partir de 15\/11\/2011) pretendo liberar uma s\u00e9rie de v\u00eddeos sobre Groovy\/Grails entitulada &#8220;Grails: o que e porqu\u00ea?&#8221;. S\u00e3o na realidade uma atualiza\u00e7\u00e3o BRUTA do meu antigo curso de Grails feito para a DevMedia entre 2009 e 2010 sob uma nova \u00f3tica: 100% abertos e com um aprofundamento bem maior, visto que [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/devkico.itexto.com.br\/?page_id=1016\" \/>\n<meta property=\"og:site_name\" content=\"\/dev\/Kico\" \/>\n<meta property=\"article:modified_time\" content=\"2013-08-04T12:23:08+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data1\" content=\"3 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/devkico.itexto.com.br\/?page_id=1016\",\"url\":\"https:\/\/devkico.itexto.com.br\/?page_id=1016\",\"name\":\"Groovy\/Grails: um guia em v\u00eddeo - \/dev\/Kico\",\"isPartOf\":{\"@id\":\"https:\/\/devkico.itexto.com.br\/#website\"},\"datePublished\":\"2011-11-16T00:14:10+00:00\",\"dateModified\":\"2013-08-04T12:23:08+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/devkico.itexto.com.br\/?page_id=1016#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/devkico.itexto.com.br\/?page_id=1016\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/devkico.itexto.com.br\/?page_id=1016#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/devkico.itexto.com.br\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Groovy\/Grails: um guia em v\u00eddeo\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/devkico.itexto.com.br\/#website\",\"url\":\"https:\/\/devkico.itexto.com.br\/\",\"name\":\"\/dev\/Kico\",\"description\":\"Desenvolvendo software\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/devkico.itexto.com.br\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"pt-BR\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Groovy\/Grails: um guia em v\u00eddeo - \/dev\/Kico","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/devkico.itexto.com.br\/?page_id=1016","og_locale":"pt_BR","og_type":"article","og_title":"Groovy\/Grails: um guia em v\u00eddeo - \/dev\/Kico","og_description":"Nos pr\u00f3ximos meses (a partir de 15\/11\/2011) pretendo liberar uma s\u00e9rie de v\u00eddeos sobre Groovy\/Grails entitulada &#8220;Grails: o que e porqu\u00ea?&#8221;. S\u00e3o na realidade uma atualiza\u00e7\u00e3o BRUTA do meu antigo curso de Grails feito para a DevMedia entre 2009 e 2010 sob uma nova \u00f3tica: 100% abertos e com um aprofundamento bem maior, visto que [&hellip;]","og_url":"https:\/\/devkico.itexto.com.br\/?page_id=1016","og_site_name":"\/dev\/Kico","article_modified_time":"2013-08-04T12:23:08+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. tempo de leitura":"3 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/devkico.itexto.com.br\/?page_id=1016","url":"https:\/\/devkico.itexto.com.br\/?page_id=1016","name":"Groovy\/Grails: um guia em v\u00eddeo - \/dev\/Kico","isPartOf":{"@id":"https:\/\/devkico.itexto.com.br\/#website"},"datePublished":"2011-11-16T00:14:10+00:00","dateModified":"2013-08-04T12:23:08+00:00","breadcrumb":{"@id":"https:\/\/devkico.itexto.com.br\/?page_id=1016#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/devkico.itexto.com.br\/?page_id=1016"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/devkico.itexto.com.br\/?page_id=1016#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/devkico.itexto.com.br\/"},{"@type":"ListItem","position":2,"name":"Groovy\/Grails: um guia em v\u00eddeo"}]},{"@type":"WebSite","@id":"https:\/\/devkico.itexto.com.br\/#website","url":"https:\/\/devkico.itexto.com.br\/","name":"\/dev\/Kico","description":"Desenvolvendo software","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/devkico.itexto.com.br\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"pt-BR"}]}},"jetpack-related-posts":[],"jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=\/wp\/v2\/pages\/1016"}],"collection":[{"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1016"}],"version-history":[{"count":26,"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=\/wp\/v2\/pages\/1016\/revisions"}],"predecessor-version":[{"id":1439,"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=\/wp\/v2\/pages\/1016\/revisions\/1439"}],"wp:attachment":[{"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1016"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}