Logar
Evento
/

FJ-16 | Laboratório Java com Testes, XML e Design Patterns (Sábado)

FJ-16 | Laboratório Java com Testes, XML e Design Patterns (Sábado)

Participantes

0
participantes
0
curtidas
Banner -  FJ-16 | Laboratório Java com Testes, XML e Design Patterns (Sábado)
Mostrar
  • De 03/11 às 09:00 até: 24/11 às 17:00
  • Rua do Ouvidor 50 - Sobreloja 201 - Centro - Rio de Janeiro/Rio de Janeiro - Brasil

Descrição

Carga Horária: 20 horas aula

 

 

O FJ-16 é um laboratório de desenvolvimento em Java focado em boas práticas de programação. Durante o curso, desenvolvemos uma aplicação de análise da bolsa de valores, que busca o histórico de uma base XML e exibe gráficos de indicadores e cotações. Nesse contexto, abordamos testes unitários com JUnit, XML com XStream, gráficos com JFreeChart, interfaces Desktop com Swing e ferramentas de build com Ant e Maven.

 

Há bastante foco nas boas práticas como refatorações, design patterns, Test Driven Development (TDD) e XP, além de recursos avançados da linguagem Java como reflection.

 

É indicado para quem acaba de fazer o FJ-11 e deseja aplicar os conceitos aprendidos além de se aprofundar em tópicos mais avançados e práticos.

 

Esse curso faz parte da Formação Consultor Java junto com o FJ-11 e o FJ-21.

 

A apostila do FJ-16 está disponível para download no Caelum Alumni para todos os alunos e ex-alunos de qualquer curso da Caelum.

 

 

Pré-requisitos:

 

Curso FJ-11 ou equivalente com conhecimento de Orientação a Objetos e Java SE básico.

 

 

Conteúdo Detalhado:

 

Tornando-se um desenvolvedor pragmático

  

  • O que é realmente importante?
  • A importância dos exercícios
  • Tirando dúvidas
  • Mais bibliografia
  • Para onde ir depois?

 

O modelo da bolsa de valores, datas e objetos imutáveis

  

  • A bolsa de valores
  • Candlesticks: O Japão e o arroz
  • O projeto Tail
  • O projeto Argentum: modelando o sistema
  • Trabalhando com dinheiro
  • Palavra chave final
  • Imutabilidade de objetos
  • Trabalhando com datas: %%Date%% e %%Calendar%%
  • Exercícios: o modelo do Argentum
  • Resumo diário dos negócios
  • Exercícios: fábrica de Candlestick
  • Exercícios opcionais

 

Testes Automatizados

  

  • Nosso código está funcionando corretamente?
  • Exercícios: testando nosso modelo sem frameworks
  • Definindo melhor o sistema e descobrindo mais bugs
  • Testes de Unidade
  • JUnit
  • Anotações
  • JUnit4, convenções e anotação
  • Exercícios: migrando os testes do main para JUnit
  • Vale a pena testar classes de modelo?
  • Exercícios: novos testes
  • Para saber mais: Import Estático
  • Mais exercícios opcionais
  • Discussão em aula: testes são importantes?

 

Trabalhando com XML

  

  • Os dados da bolsa de valores
  • XML
  • Lendo XML com Java de maneira difícil, o SAX
  • XStream
  • Exercícios: Lendo o XML
  • Separando as candles
  • Test Driven Design - TDD
  • Exercícios: Separando os candles
  • Exercícios opcionais
  • Discussão em aula: Onde usar XML e o abuso do mesmo

 

Interfaces gráficas com Swing

  

  • Interfaces gráficas em Java
  • Portabilidade
  • Look And Feel
  • Componentes
  • Começando com Swing - Mensagens
  • Exercícios: Escolhendo o XML com JFileChooser
  • Componentes: JFrame, JPanel e JButton
  • O design pattern Composite: Component e Container
  • Tratando eventos
  • Classes internas e anônimas
  • Exercícios: nossa primeira tela
  • JTable
  • Implementando um TableModel
  • Exercícios: Tabela
  • Exercícios opcionais: melhorando a apresentação
  • Para saber mais
  • Discussão em sala de aula: Listeners como classes top level, internas ou anônimas?

 

Refatoração: os Indicadores da bolsa

  

  • Análise Técnica da bolsa de valores
  • Indicadores Técnicos
  • As médias móveis
  • Exercícios: criando indicadores
  • Refatoração
  • Exercícios: Primeiras refatorações
  • Refatorações maiores
  • Discussão em aula: quando refatorar?

 

Gráficos com JFreeChart

  

  • JFreeChart
  • Utilizando o JFreeChart
  • Isolando a API do JFreeChart: baixo acoplamento
  • Para saber mais: Design Patterns Factory Method e Builder
  • Exercícios: JFreeChart
  • Exercícios opcionais
  • Nossos indicadores e o design pattern Strategy
  • Exercícios: refatorando para uma interface e usando bem os testes
  • Exercícios opcionais

 

Mais Swing: layout managers, mais componentes e detalhes

  

  • Gerenciadores de Layout
  • Layout managers mais famosos
  • Exercícios: usando layout managers
  • Integrando JFreeChart
  • Exercícios: completando a tela da nossa aplicação
  • Indicadores mais Elaborados e o Design Pattern Decorator
  • Exercícios: Indicadores mais espertos e o Design Pattern Decorator
  • Discussão em sala de aula: uso de IDEs para montar a tela

 

Reflection e Annotations

  

  • Por que Reflection?
  • Class, Field e Method
  • Usando anotações
  • Usar JTables é difícil
  • Usando bem anotações
  • Criando sua própria anotação
  • Exercícios: ArgentumTableModel
  • Exercícios opcionais: nomes das colunas
  • Para saber mais: Formatter, printf e String.format
  • Para saber mais: parâmetros opcionais
  • Exercícios opcionais: formatações na tabela
  • Discussão em sala de aula: quando usar reflection, anotações e interfaces

 

Apêndice: O processo de Build: Ant e Maven

  

  • O processo de build
  • O Ant
  • Exercícios com Ant
  • O Maven
  • O Project Object Model
  • Plugins, goals e phases
  • Exercícios: build com o Maven
  • Uso dentro do Eclipse
  • Discussão em sala de aula: IDE, ant ou Maven?

 

Apêndice - Mais swing e recursos avançados

  

  • Input de dados formatados: Datas
  • Exercícios opcionais: filtrando por data
  • Para saber mais: barra de menu
  • Exercício: escolhendo indicadores para o gráfico
  • Dificuldades com Threads e concorrência
  • SwingWorker
  • Exercícios: pesquisando mais na API

 

Apêndice - Logging com Log4j

  

  • Usando logs - LOG4J
  • Níveis de logs
  • Appenders e layout
  • Exercícios: Adicionando logging com Log4J
  • O sl4j


 

* Os apêndices listados são conteúdos adicionais que não fazem parte do curso regular.

Ler mais

Localização

Programação

Este evento não possui atividades no momento.

Planta do Evento

A planta do evento não está disponível.

Contato

Preencha os campos abaixo para enviar e-mail ao organizador.

Campos Obrigatórios
Campos Obrigatórios
Ao se cadastrar, você concorda com nossos Termos de uso.
Ajaxloader

Compartilhar evento por e-mail


Para continuar, faça login ou cadastre-se.

Recomende este evento para sua rede.

Selecione os usuários que deseja recomendar este evento.