Práticas Ágeis de Desenvolvimento de Software em Java

FD9E034F-C706-472D-ABA4-310433A703E5 Created with sketchtool.

Carga horária 20 horas

AAB4B036-DC37-454F-B8A0-63C4957C5AC0 Created with sketchtool.

Próxima turma 15.05 a 19.05

O que você vai fazer

O que você já precisa saber

Ou: Java, Orientação a Objetos, Collections, JSP, JSTL básico, MVC, Hibernate/JPA, patterns DAO e Factory.

Desejável noções básicas de metodologias ágeis.

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

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 ter uma ótima experiência.

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 desenvolvimento.

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 alterar um código desconhecido. Propondo diversos padrões e tecnologias,o curso ensina a superar os medos e te faz ter novas visões de desenvolvimento.

Próximas turmas

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

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

Nós encontramos essas turmas:

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

Entre em contato
Fale com a gente!

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

Conheça a Alura