Trilha Java Avançado

Está na hora de se tornar um mestre na linguagem.

702 min de vídeo (156 horas de tempo estimado*) 10 cursos

Matricule-se nessa trilha por R$699 à vista ou 12x de R$58,25 sem juros

Assine todas as trilhas R$197,00/mês

Cursos desta trilha

Aprimorando a Orientação a Objetos com Java

Desenvolvedores com experiência em programação Java e que querem aprender mais sobre orientação a objetos, evitando modelagens ingênuas.
  1. Revisitando a Orientação a Objetos

    1. Classes com muitas responsabilidades
    2. Atributos privados com getters e setters
    3. Modelo anêmico
    4. Unindo dados e lógica
    5. Tell, don't ask
  2. Melhorando a coesão de nossas classes

    1. Single Responsibility Principle
    2. Classes estáveis
    3. Baixo acomplamento, alta coesão
    4. Modificações em um único ponto
  1. Herança: quando não usar

    1. Uso ingênuo da herança
    2. Problemas simples que surgem sempre
    3. Herança versus composição
  2. Lidando com o acoplamento

    1. Separação de responsabilidades
    2. Algoritmos enxutos
    3. Dependência boa é dependência explícita
  3. Reduzindo acoplamento com polimorfismo

    1. Programando voltado à interface
    2. Evitando ifs e reduzindo a complexidade ciclomática
    3. Iterable: polimorfismo nas coleções do java
  1. Aumentando a flexibilidade com injeção de dependências

    1. Isolando as necessidades de um objeto
    2. Construtores fazendo a sua parte
    3. Usando polimorfismo para atender dependências
6

vídeos

6

capítulos

42

exercícios

Design Patterns para Bons Programadores 2

Desenvolvedores com experiência em programação Java e Orientação a Objetos que querem elevar a qualidade de seu código ao próximo nível.
  1. Fábricas e o problema de criação de objetos

    1. Quando usar uma factory?
    2. Qual a diferença entre Factory e Builder
  2. Muitos objetos e o Flyweight

    1. Instanciando muitos objetos
    2. O padrão flyweight
    3. Tocando notas musicais
  3. Salvando estados anteriores e o Memento

    1. Salvando estados
    2. Recuperando estados
    3. O padrão Memento
    4. Undo/Redo
  1. DSLs e o Interpreter

    1. Interpretando uma expressão aritmética
    2. Entendendo a árvore de interpretação
  2. Estruturas de dados e o Visitor

    1. Visitando uma árvore
    2. Implementando um Visitor
  3. Bridges e Adapters

    1. O que são bridges?
    2. O que são adapters?
    3. Qual a diferença?
  1. Diferentes ações com Command

    1. Encapsulando ações
    2. Exemplos de Command
  2. Façades e Singletons

    1. O que é uma Façade?
    2. O que é um Singleton?
    3. Quando não usá-los?
8

vídeos

8

capítulos

37

exercícios

Relatórios em Java com JasperReports e iReport

Desenvolvedores Java que querem criar relatórios de altíssima qualidade em suas aplicações.
  1. Instalação e o primeiro relatório com iReport

    1. Relatórios em HTML e seus problemas
    2. Report engine: JasperReports 4.7 e iReport
    3. Instalação do iReport
    4. Definição da conexão e template
    5. Organização do relatório
    6. Visualizando o primeiro relatório
  2. Organização do relatório com iReport

    1. Relatório sem template
    2. Buscas customizadas com Query Designer
    3. Seções e componentes de um relatório
    4. Agrupando e somando os gastos da conta
    5. Adicionando novos grupos ao relatório
  3. Formatação e ajustes de visualização do relatório

    1. Melhorar o design do relatório
    2. Formatar e concatenar campos de texto
    3. Formatando a data e os valores numéricos
    4. Resultados condicionais
    5. Diminuir o campo de texto
    6. Mais formatações
    7. Diminuir o campo de texto
    8. Passando parâmetros para o relatório
    9. Filtrando o relatório pelos parâmetros
  1. Gráficos, tabelas dinâmicas e sub-relatórios

    1. Gráficos para o iReport
    2. Um novo dataSet para o gráfico
    3. Criação do gráfico
    4. Resumindo e agrupando valores através de crosstable
    5. Usando sub-relatórios
    6. Integração do sub-relatório e relatório mestre
  2. Gerando PDF e outras saídas na aplicação Java

    1. Introdução ao Report Engine JasperReports
    2. Preparação do projeto
    3. Configuração das bibliotecas
    4. Compilação programática
    5. Alterando a linguagem de script
    6. Preenchendo o relatório
    7. Trabalhando com o objeto JasperPrint e várias saídas
    8. Exportando o relatório para PDF
  3. Integração do JasperReports na aplicação Web

    1. Refatoração para simplificar a geração do PDF
    2. Introdução a aplicação Web
    3. Criação da Servlet para gerar o PDF
    4. Definição do formulário JSP
    5. Capturando as datas do relatório pelo formulário
    6. Passando parâmetros da requisição para o relatório
  1. Várias entradas para o mesmo relatório

    1. Qualquer entrada de dados para o relatório
    2. Introdução ao projeto
    3. Desacoplando os dados e a interface JRDataSource
    4. Usando uma lista como datasource
    5. Geração do relatório e as primeiras incompatibilidades
    6. Adaptar o modelo para atender o relatório
    7. Desacoplar o modelo do relatório
    8. Resumo da aula
7

vídeos

7

capítulos

46

exercícios

XStream: Trabalhando com XML

Desenvolvedores Java que precisam manipular arquivos XML
  1. Serializando e deserializando objetos e coleções em XML

    1. Serializando um objeto
    2. Deserializando um objeto
    3. Alias
  2. Relacionamentos, deserialização e refatoração

    1. Serializando relacionamento
  1. Refatorações, referências, duplicidades e ciclos

    1. Referências no XML
    2. Lidando com duplicidade
    3. Lidando com ciclos
  2. Coleções implícitas e polimorfismo

    1. Listas implícitas
    2. Lidando com polimorfismo
  1. Customizando o processo com conversores próprios

    1. A interface Converter
    2. Criando um conversor para moeda brasileira
  2. Conversores complexos

    1. Criando conversores mais avançados
6

vídeos

6

capítulos

18

exercícios

ANT: Builds de software automatizados

Desenvolvedores Java que desejam controlar o ciclo de construção de software com ANT e interessados no processo de integração contínua. Necessário conhecimentos de Java para Web.
  1. O processo de build de um software e introdução ao ANT

    1. Build automatizados e entrega contínua
    2. O ANT como ferramenta de build
    3. Definição de tarefas
    4. Gerando um JAR
    5. Criação de alvos
    6. Dependências entre targets
  2. Compilar e executar testes com ANT

    1. Testando fora do Eclipse
    2. Compilação das classes de teste
    3. Executando testes com JUnit
    4. Geração de relatórios
  1. Definição do classpath e refatoração do build

    1. Caminhos e configurações duplicados
    2. Refatoração do classpath e o elemento path
    3. Aproveitando caminhos existentes
    4. Propriedades duplicadas e o elemento property
    5. Externalizar as propriedades
  2. Deployar e rodar a aplicação no servidor

    1. Criação do WAR para o Deploy automático
    2. Deploy no Tomcat
    3. Executar o projeto no servidor
    4. Acesso a qualquer servidor remoto via SCP
    5. Geração do projeto para ambientes de homologação e produção
  1. Customizando o processo de build com tarefas próprias

    1. Criação de classes tarefas
    2. Declaração da tarefa no build
    3. Definição de atributos da tarefa
    4. Classpath da tarefa no build.xml
5

vídeos

5

capítulos

31

exercícios

Ivy: Gerenciamento das dependências flexível

Programadores Java que querem gerenciar, compartilhar e resolver conflitos entre dependências de maneira ágil. Necessário conhecimentos de Java e Apache ANT.
  1. Gerenciamento de dependências

    1. Introdução ao Ivy
    2. Encontrando as dependências
    3. Declaração das dependências
    4. Task para resolver os JARs
    5. Cache do Ivy
    6. Resumo
  2. Adaptando Ivy ao seu projeto

    1. Apresentação da aplicação Web
    2. Dependências da aplicação Web
    3. Definição do local das dependências
    4. Separando dependências através de configurações
    5. Aplicando configurações no build
    6. Mais mapeamentos
  1. Resolvendo conflitos entre dependências

    1. Lidando com conflitos
    2. Desabilitando dependências transitivas
    3. Mais dependências e o primeiro conflito
    4. Gerenciador de conflitos
    5. Criação do relatório de dependências
    6. Exclusão de dependências
    7. Resumo
  2. Publicar dependências no próprio repositório

    1. Apresentação do projeto
    2. Testando o build
    3. Definição do artefato a publicar
    4. Tarefa para publicar
    5. Publicação de vários tipos de artefatos
    6. Publicação e resolvers
    7. Baixar dependências do repositório local
    8. Definição do repositório local
    9. Configuração da cadeia de repositórios
    10. Instalando todas as dependências no repositório local
    11. Resumo
4

vídeos

4

capítulos

24

exercícios

Maven: gerenciando dependências

Programadores Java que querem automatizar a construção de software. É necessário ter conhecimentos de Java.
  1. Gerenciando o ciclo de vida de um projeto Java

    1. Build: compilar, testar, empacotar, etc
    2. Instalando o Maven
    3. Criando um novo projeto
    4. Compilando com o Maven: compile
    5. Testando com o Maven: test
    6. Gerando um jar: package
    7. Configurando um projeto para o Eclipse
    8. Configurando o Eclipse para projetos Maven
    9. Gerenciando dependências
  2. Convenções e repositórios

    1. Convenções, groupId e artifactId
    2. Rodando offline
    3. Analisando a árvore de dependências
    4. Repositório local e central
    5. Criando um segundo projeto
  1. Relatórios e testes

    1. Relatório de testes: surefire-report
    2. Relatório de qualidade de código: pmd
    3. Usando plugins fora do padrão
    4. Relatório de cobertura de código: jacoco
    5. Quebrando o build caso a cobertura seja baixa
  2. Aplicações Web

    1. Archetype de aplicações web
    2. Criando uma nova aplicação web
    3. Configurando aplicações web no Eclipse
    4. Rodando o servidor Jetty
    5. Configurando o Jetty
  1. Escopos e dependência entre projetos

    1. Interdependência entre projetos
    2. Instalando dependências no repositório local
    3. Dependências opcionais
    4. Escopo de compilação, de testes e de execução
    5. Excluindo dependências
5

vídeos

5

capítulos

18

exercícios

Web Services REST com JAX-RS e Jersey

Desenvolvedores com experiência em programação java e programação web
  1. Serviços Web REST e Addressability

    1. WebServices REST e HTTP
    2. JAX*RS e a implementação Jersey
    3. Addressability
    4. Representação x Recurso
    5. URIs e método GET
    6. Criando um @Resource
    7. Produzindo application/xml
    8. Trazendo a representação de um carrinho
    9. Usando o Grizzly
    10. Criando um teste end*to*end para produção
  2. Testes end*to*end com JAX*RS e Grizzly

    1. Criando um teste end*to*end
    2. @Before e @After para servidores
    3. Refatorando nosso código
  3. Trabalhando com parâmetros

    1. Lendo parâmetros do Path com @PathParam
    2. Lendo parâmetros da Query com @QueryParam
  4. Gerando Json com Gson

    1. Produzindo Json
    2. XStream ou Gson
  5. Criando recursos e o POST

    1. A criação remota de um recurso
    2. Enviando representações
    3. O método POST
    4. A linha de comando e o curl
  1. O protocolo HTTP por baixo dos panos

    1. curl com verbose
    2. O protocolo HTTP
    3. O body de uma requisição HTTP: GET x POST
    4. Headers HTTP
  2. Status code e a Interface Uniforme

    1. O erro 500 Internal Server Error
    2. Status no body ou no status code?
    3. A resposta 200 Ok
    4. A resposta 201 Created
    5. O header Location
    6. Consumindo application/xml
    7. curl e os cabeçalhos extras
    8. Fazendo um POST com a API de cliente do Jersey
  3. Idempotência

    1. Requisições e refresh
    2. Vantagem do GET e da idempotência
  4. Removendo recursos e subrecursos

    1. Removendo um recurso
    2. O verbo DELETE
    3. curl e DELETE
    4. DELETE e idempotência
  5. Utilizando filtros e logging

    1. Adicionando filtros
    2. Adicionando logging no cliente
  1. Atualizando recursos e o PUT

    1. Atualização de um produto
    2. Utilizando o verbo PUT
    3. Atualização parcial de um produto
    4. PUT e Idempotência
  2. Interface Uniforme

    1. PATCH e atualização parcial de recurso
    2. OPTIONS e outros verbos
    3. Media types
    4. A interface uniforme e o HTTP
  3. Deploy WAR e Servlet Contêiners

    1. Um web.xml para o Jersey
    2. Instalando o Tomcat 8
    3. Gerando um arquivo war
    4. Contexto de uma aplicação
  4. Serialização com JAXB

    1. A serialização padrão
    2. Anotações do JAXB
    3. Retornado e recebendo entities no servidor
    4. Usando entities no cliente
14

vídeos

14

capítulos

46

exercícios

OO avançada e SOLID

Desenvolvedores que já conhecem orientação a objetos, e desejam criar sistemas ainda mais fáceis de serem mantidos.
  1. Coesão e o Single Responsibility Principle

    1. O que é coesão?
    2. Vantagens das classes coesas
    3. Como escrever classes coesas
    4. O princípio SRP
  2. Acoplamento e a estabilidade

    1. Por que acoplamento é ruim?
    2. Como lidar com acoplamento?
    3. Acoplamento aferente e eferente
    4. Classes estáveis
    5. Programação voltada a interfaces
  1. Classes abertas, Open Closed e Dependency Inversion Principles

    1. Princípio das classes abertas-fechadas (OCP)
    2. Inversão de Dependências (DIP)
    3. Escrevendo código flexível
  2. Entendendo o encapsulamento

    1. O que é encapsulamento?
    2. Percebendo classes não encapsuladas
    3. Encapsulamento e reuso
  1. Herança e o Liskov Substitutive Principle

    1. O que é herança?
    2. Por que usar herança é difícil?
    3. Quando usar herança?
    4. Quando não usar herança?
    5. O princípio de Liskov (LSP)
5

vídeos

5

capítulos

22

exercícios

EJB 3

Desenvolvedor Java
  1. Enterprise Java Beans

    1. Introdução ao EJB
    2. Serviços do container e o servidor de aplicações
    3. Preparação do ambiente de desenvolvimento
    4. Instalação do Server Adapter
    5. Primeira aplicação com EJB
    6. Apresentação do projeto
    7. O primeiro Session Bean
    8. Injeção de dependências
  2. Ciclo de vida de Session Beans

    1. Callbacks
    2. Thread safety
    3. Pool de Objetos
    4. Singleton Beans
    5. Eager Initialization
  3. Integração do JPA com Pool e DataSource

    1. Injetando o EntityManager
    2. Configuração do banco de dados
    3. Usando o DataSource
    4. Preparação do banco de dados
    5. Testando a persistência
  1. Gerenciamento de Transações com JTA

    1. Java Transaction API
    2. Container Managed Transaction
    3. Uso de TransactionAttribute
    4. Serviços como Transaction boundary
    5. Outros atributos da transação
    6. Gerenciamento da transação programaticamente
  2. Tratamento de exceções com EJB

    1. Lidando com exceções
    2. Exceções da Aplicação
    3. System e Application Exceptions
    4. Configurando Application Exceptions
  3. Novos serviços com Interceptadores

    1. Monitoramento com Interceptadores
    2. O primeiro interceptador
    3. Trabalhando com o InvocationContext
    4. Interceptadores padrões
  1. Integração com Web Services

    1. Introdução ao Web Services
    2. Serviços com SOAP/WSDL
    3. Web Services com JAX-WS
    4. Publicando o serviço
    5. Interface do serviço - WSDL
    6. Testando o serviço com SoapUI
    7. Implementação do Serviço
    8. Personalizando a mensagem SOAP
    9. Cliente Java
  2. Agendamento de tarefas

    1. Agendamento de chamadas
    2. @Schedule
    3. Vários modulos na aplicação
    4. Deploy através de EAR (Enterprise ARchive)
8

vídeos

8

capítulos

52

exercícios

*Acesse nosso FAQ para entender como calculamos as horas dos cursos.

Conheça 2 dos 68 vídeos dessa trilha

Aula 1 do Curso Aprimorando a Orientação a Objetos com Java

Aula 1 do Curso Relatórios em Java com JasperReports e iReport

Matricule-se nessa trilha por R$699 à vista ou 12x de R$58,25 sem juros

Assine todas as trilhas R$197,00/mês