Curso Práticas Ágeis de Desenvolvimento de Software em Java

FD9E034F-C706-472D-ABA4-310433A703E5 Created with sketchtool. 20 horas/aula
Veja as próximas turmas

O que você vai fazer

Para quem é esse curso?

Para alunos que queiram aprender conceitos ágeis na área de desenvolvimento, estudando diversas tecnologias e ferramentas que boa parte dos times ágeis tem usado para aumentar sua produtividade, disseminar o conhecimento, encorajar os programadores e garantia de qualidade de código.

Para aproveitar melhor o curso recomendamos que você tenha conhecimento em

Curso Java e Orientação a Objetos - Curso Java para Desenvolvimento Web

Conteúdo detalhado do curso PM-87

    O medo de se adaptar

  1. Problema: código desconhecido
  2. Problema: entregas demoradas
  3. Outros problemas
  4. Enfrentando o medo com práticas ágeis

    Controle de versão

  1. Problema: o medo de remover código
  2. Solução: controle de versão
  3. Métodos não utilizados
  4. Problema: imprevistos
  5. Solução: controle de versão com Git
  6. Exercício: Mexendo com o Git
  7. O que vem de brinde?
  8. Para saber mais: outros sistemas de controle de versão
  9. Criando um projeto usando Git
  10. Exercício: iniciando um novo repositório
  11. Trabalhando com Branches
  12. Juntando commits de outra branch
  13. Exercícios: usando branches
  14. Contribuindo com projetos open source no Github
  15. Solução: Fork/Pull Requests
  16. Para saber mais: hooks
  17. Alguns comandos úteis do Git

    Conhecendo o sistema

  1. Problema: primeiro contato com o sistema
  2. Exercício: Conhecendo o sistema
  3. O código fonte
  4. O medo de quebrar algo
  5. Programação pareada
  6. Exercício: Exercitando coragem

    Bugs e testes

  1. Problema: o bug
  2. Exercício: Identificando um bug em cenário complexo
  3. Resolvendo bugs
  4. Solução: testes automatizados
  5. JUnit
  6. Replique o problema, então corrija
  7. Exercício: Resolvendo bugs para que não voltem
  8. Presença de testes vs. segurança
  9. Exercício: Eliminando testes duplicados
  10. Testes como documentação

    Qualidade do código

  1. Problema: o único que entende sai de férias
  2. Solução: dividir mais o conhecimento
  3. O ambiente de trabalho
  4. Exercício: Troca de informações
  5. Refatoração
  6. Exercícios: Melhorando o código com refatorações
  7. Desenvolvimento incremental
  8. Qualidade do código é importante! Mas como medir?
  9. Refatorando e testando código legado

    Parar, pensar e adaptar

  1. O que desejamos desenvolver?
  2. Fugindo do design antecipado
  3. Escrevendo testes antes
  4. Teste primeiro, codifique depois
  5. Faça funcionar e, então, melhore
  6. Um passo de cada vez
  7. TDD
  8. Mudanças simples x Soluções simples
  9. Exercícios: TDD

    E se eu falhar? Integrando continuamente

  1. Problema: merge hell (merges infernais)
  2. Integração contínua
  3. Solução: build automatizado
  4. Build contínuo com o Jenkins
  5. Exercicio: Instalando e configurando o Jenkins

    Release e entrega

  1. Problema: não funciona em produção
  2. Acelerando o processo de deploy
  3. Solução: homologação contínua
  4. Exercício: Deploy para homologação
  5. Exercício: Deploy para produção
  6. Problema: só entrego a cada 6 meses
  7. Releases curtos e frequentes
  8. Solução: deploy e entrega contínua
  9. Build pipeline
  10. Funcionalidades e branches

    Testes de aceitação

  1. Na minha máquina funciona!
  2. Mas não era bem isso
  3. Problema: definição ambígua
  4. Solução: definindo um critério de aceitação
  5. Transformando critérios em testes
  6. Criando testes de aceitação com Selenium WebDriver
  7. O Padrão Page Object
  8. Behaviour Driven Development (BDD)
  9. Exercícios: Testes de aceitação com Selenium WebDriver

    *Apêndice - Acompanhamento do projeto

  1. Quanto estamos desenvolvendo?
  2. Release vs. Iteração
  3. Techtalks e Brownbags
  4. Em busca de uma métrica
  5. Exercício

    *Apêndice - Testes em cenários difíceis

  1. Quando testar é difícil ou lento
  2. Simulando comportamentos com Mocks
  3. Testando DAOs
  4. Exercícios: Testando a DAO
  5. Para saber mais: Evoluindo o Banco de Dados com Migrations
  6. Para saber mais: Pirâmide de Testes

* Apêndices são conteúdos adicionais que não fazem parte da carga horária regular do curso. São conteúdos extras para direcionar seus estudos após o curso.

O que os alunos falam

Milene Pirani

Exercícios práticos com metodologia ágil, desenvolvimento, testes em java, além das explicações do instrutor Lucas, me ajudaram a entender melhor e te...

Henrique Tukahara Koga

A partir das tecnologias e metodologias utilizadas atualmente, o curso consegue dar uma visão prática e simples dos cenários reais em um projeto de de...

Alan Lima Gonçalves Santos

Como sempre o instrutor é muito divertido e atencioso. O curso aborda diversos problemas diários na alteração de código e nos medos existentes para se...

Próximas turmas

Selecione a cidade e os períodos de sua preferência

Qual cidade você pode ir?
Quais períodos você prefere?
Ver turmas encontradas

Nós encontramos essas turmas:

Não achou a turma ideal pra você? Consulte outras turmas e horários.

Entre em contato

Não encontrou o curso que procura? Conheça a Alura, a plataforma online da Caelum

Conheça a Alura