`Curso `PJ~ @ `LS~ Última atualização em %%mtime(%d/%B/%y às %H:%M) %!target: html %!encoding: utf-8 %!options: -o index.html %% Arquivo com a definição das tags utilizadas por uma apresentação S5 %!includeconf: s5-defs.t2t %% Arquivo com a definição de URLs utilizadas pelos diversos arquivos de apresentação %!includeconf: urls.t2t %% Quaisquer definições que sejam escritas antes da inclusão do arquivo defs.t2t irão %% sobrescrever as que estiverem declaradas no mesmo. %!postproc: `Subtitle 'Apresentação do Curso' %% Arquivo de definicoes globais %!includeconf: defs.t2t %% Arquivo de layout das apresentações %!include: layout.t2t {presentation} %% Arquivo de cabeçalho das apresentações %!include: header.t2t {slide} {title}Descrição{/title} {slidecontent} - Treinamento presencial sobre ferramentas para a construção e integração de aplicações Java: `Maven~, `Continuum~, `Hudson~, `Archiva~ e `Artifactory~, cobrindo ainda, práticas para o desenvolvimento ágil de software como `TDD~ e `ContinuousIntegration~; - Apache `Maven~: - Ferramenta para gerenciamento e automação de projetos em Java; - Similar ao `Ant~ porém, com modelo de configuração mais simples; - Utiliza uma construção conhecida como //Project Object Model// (POM), que descreve todo o processo de construção de um projeto de software, suas dependências de outros módulos e componentes e sua seqüência de construção; {/slidecontent} {/slide} {slide} {title}Descrição (2){/title} {slidecontent} - Apache `Maven~: - Contém tarefas pré-definidas que realizam funções bem conhecidas como compilação e empacotamento de código; - Gera documentação e relatórios sobre o projeto; - Construído para trabalhar em rede; - [Baseado em plugins =MavenPlugins.url=], que podem ser baixados de repositórios (os mesmos utilizados por outros projetos Java do Apache e outras organizações); {/slidecontent} {/slide} {slide} {title}Descrição (3){/title} {slidecontent} - `ContinuousIntegration~ (ou integração contínua) é o ato de se realizar a integração de um software produzido por um time várias vezes ao dia, garantindo que a base de código permaneça consistente ao final de cada integração. - `Continuum~ e `Hudson~ são algumas das ferramentas para integração contínua que suportam o modelo de construção de aplicações do `Maven~; {/slidecontent} {/slide} {slide} {title}Descrição (4){/title} {slidecontent} - Apache `Continuum~: - Servidor para integração contínua capaz de construir projetos Java baseados no `Maven~ (1 e 2), `Ant~ e Shell Scripts; - `Hudson~: - Servidor para integração contínua e monitor de execuções de //jobs//; - Ênfase na facilidade de uso e na extensibilidade (+ de 50 //plug-ins//); - Ganhador do prêmio `DukesChoiceAwards~ na categoria "Developer Solutions"; {/slidecontent} {/slide} {slide} {title}Tópicos cobertos no curso{/title} {slidecontent} - **Módulo 1 (28h): Maven** - Introdução - O que é o `Maven~? - Convenção ao invés de configuração - Breve histórico do processo de construção de aplicações Java - Porque simplesmente não utilizar o `Ant~? - Desenvolvendo um projeto simples - Introdução - Instalação - A coordenação do `Maven~ - Repositórios e o POM - Geração do site do projeto - Primeira execução - Dicas e truques {/slidecontent} {/slide} {slide} {title}Tópicos cobertos no curso (2){/title} {slidecontent} - **Módulo 1 (28h): Maven** - O POM e o relacionamento entre os projetos - O ciclo de vida da construção - Plugins - Arquétipos - Profiles - Geração do site - Montadores (Assemblies) - Escrevendo plugins - O repositório - Desenvolvendo aplicações Java EE {/slidecontent} {/slide} {slide} {title}Tópicos cobertos no curso (3){/title} {slidecontent} - **Módulo 2 (20h): Ferramentas para [integração contínua =ContinuousIntegration.url=] e para gerencimanento de repositórios do Maven** - O que é integração contínua? - Instalação, configuração e uso de ferramentas para integração contínua - `Continuum~ - `Hudson~ - Instalação, configuração e uso de gerenciadores de repositórios para o Maven - `Archiva~ - `Artifactory~ {/slidecontent} {/slide} {slide} {title}Didática{/title} {slidecontent} - Apresentação de slides (formato `S5~) e vídeos; - Slides contendo __links__ e servindo como roteiro de aula; - Vídeos demonstrando tarefas comuns de instalação, configuração e execução das ferramentas; - Explicação de exemplos: - Em sua maioria, didáticos; - Em várias situações reais, demonstrando a aplicação das ferramentas em aplicações existentes e funcionais disponibilizadas como software livre; - Resolução de exercícios; - Durante o período do curso, os alunos poderão também retirar suas dúvidas sobre os tópicos apresentados utilizando uma lista de discussão gerenciada pelo instrutor; {/slidecontent} {handout} - Notas: - Para um melhor aproveitamento, é importante que o aluno: - Explore as referências! Vá além dos tópicos cobertos no curso; - Faça os exercícios extras, propostos no final de cada capítulo; {/handout} {/slide} {slide} {title}Pré-requisitos (desejáveis){/title} {slidecontent} - Experiência no desenvolvimento Java EE envolvendo tecnologias e ferramentas como: - `Servlet~, `JSP~, `JSTL~, `JSF~; - `EJB3~: `JPA~, SLSB, SFSB, MDB; - `Ant~; - Experiência em sistemas gerenciadores de versões de software: - `CVS~, `SVN~, `GIT~, ...; - Experiência básica em Linux (utilizaremos o `Ubuntu~): - Comandos de uso cotididiano; - Interpretação de Shell script (será utilizado o `Bash~); {/slidecontent} {/slide} {slide} {title}Referências{/title} {slidecontent} - Livros //(não inclusos, cada aluno deverá adquirir sua cópia)//: - [Better Builds with Maven http://www.devzuz.com/web/guest/products/resources#BBWM] //(gratuito)//; - [Maven - The Defitive Guide http://www.sonatype.com/book/] //(gratuito)//; - [Maven: A Developer's Notebook http://mavenbook.xwiki.com] //(não gratuito)//; - Documentação sobre `Maven~: - [Maven Documentation http://maven.apache.org/guides/index.html]; - [Artigos http://maven.apache.org/articles.html]; {/slidecontent} {/slide} {slide} {title}Referências (2){/title} {slidecontent} - Documenação sobre `Hudson~: - [Meet Hudson http://hudson.gotdns.com/wiki/display/HUDSON/Meet+Hudson]; - [Use Hudson http://hudson.gotdns.com/wiki/display/HUDSON/Use+Hudson]; - [Extend Hudson http://hudson.gotdns.com/wiki/display/HUDSON/Extend+Hudson]; - Documentação sobre `Archiva~ e `Artifactory~: - [Archiva Documentation http://maven.apache.org/archiva/docs/1.0.1/index.html] - [Setting Up a Maven Repository http://www.theserverside.com/tt/articles/article.tss?l=SettingUpMavenRepository] - [Welcome to the Artifactory User Guide! http://www.jfrog.org/confluence/display/RTF/User+Guide] {/slidecontent} {/slide} {slide} {title}Material{/title} {slidecontent} - Como material deste treiamento, serão entregues para cada aluno 1 ou 2 DVDs contendo: - 1 máquina virtual VMware instalada com o `Ubuntu~ contendo todos os softwares configurados para a execução no treinamento; - Estes slides; - Vídeos; - Exemplos didáticos e aplicações reais (software livre) utilizando as ferramentas abordadas; - Exercícios solucionados; - Cópias de documentações encontradas livremente na Internet; {/slidecontent} {/slide} {slide} {title}Calendário{/title} {slidecontent} - Duração total: 48 horas - Módulo 1 (32h): Início em 19/Jun/2008 e fim em 02/Jun/2008: | Ter | Qua | Qui | Sex | | | 19 | 20 | 24 | 25 | 26 | 27 | 01 | 02 | | - Módulo 2 (16h): Início em 03/Jun/2008 e fim em 09/Jul/2008: | Ter | Qua | Qui | Sex | | | 03 | 04 | 08 | 09 | | - Horários das aulas: das 08:00 às 12:00 (4h diárias) {/slidecontent} {/slide} {slide} {title}Eu!{/title} {slidecontent} - __PJ__ ;-) - Linuxer (`Ubuntu~) e blogger (http://paulojeronimo.com); - Desenvolvedor Java desde 1998 (`SCJP~, `SCWCD~, `SCBCD~, `SCEA~(I), `CJA~, `CJD~); - Consultor e Instrutor do `LS~; - Foco atual em treinamentos, administração, configuração, monitoração, clusterização e tuning de servidores de aplicações Java livres: `Tomcat~, `JBossAS~, `GlassFish~, `Geronimo~, ...; - Analista de Suporte na `Andima~. Responsabilidades: - Gerenciamento de instâncias do `JBossAS~; - Ambiente de integração contínua (`CruiseControl~, `Hudson~); {/slidecontent} {/slide} {slide} {title}Eu! (2){/title} {slidecontent} - Experiência anterior nos tópicos deste treinamento: - Montagem do ambiente de desenvolvimento/integração para projeto de Portal B2B para o Banco do Brasil através da Sun Microsystems utilizando o `Maven~ e o `Continuum~; - Treinamento para [turma do SERPRO =TurmaDeMaven2DoSERPRO.url=]: `Maven~, `Continuum~; {/slidecontent} {/slide} {slide} {title}Vocês!?{/title} {slidecontent} - Nome? Apelido?? - Empresa, departamento e cargo em que trabalha? - Experiência anterior nos tópicos que serão abordados neste curso? - `Ant~? `Maven~? `Continuum~? `Hudson~? `Archiva~? `Artifactory~? `TDD~? `ContinuousIntegration~? - Já utilizou outras ferramentas de integração contínua? - Experiência em Linux? `Ubuntu~?? Outros??? {/slidecontent} {/slide} {/presentation} %%!include: footer.t2t