- Dominar Programação Orientada a Objetos e linguagem Java
- Criar soluções flexíveis, extensíveis e testáveis
- Adquirir a base sólida teórica e prática para ser um desenvolvedor Java de sucesso
- Aplicar o conhecimento de orientação a objetos na construção de soluções para problemas reais
- Compreender diagramas de classe UML, tanto de entidades quanto de serviços
- Desenvolver aplicações para desktop com interface gráfica
- Construir web services usando Spring Boot e boas práticas
- Acessar banco de dados relacionais com comandos SQL (JDBC) e também com ORM (JPA/Hibernate)
- Acessar banco de dados NoSQL
54h de videos-aula
- exercícios - 33h
- projetos - 47h
Realizado entre Agosto e Dezembro de 2022
- Visão geral do capítulo
- Material de apoio do capítulo
- Algoritmo, Automação, Programa de Computador
- O que é preciso para se fazer um programa de computador
- Linguagem de programação, léxica, sintática
- IDE - Ambiente Integrado de Desenvolvimento
- Compilação, interpretação, código fonte, código objeto, máquina virtual
- Visão geral do capítulo
- Material de apoio do capítulo
- Entendendo as versões do Java
- Histórico e edições de Java
- JDK / JVM - Máquina Virtual do Java
- Estrutura de uma aplicação Java
- Instalando o Java JDK
- Instalando o Eclipse
- Primeiro programa em Java no Eclipse
- Visão geral do capítulo
- Material de apoio do capítulo
- Expressões aritméticas
- Variáveis e tipos básicos em Java
- As três operações básicas de programação
- Saída de dados em Java
- Processamento de dados em Java, Casting
- Entrada de dados em Java - Parte 1
- Entrada de dados em Java - Parte 2
- Funções matemáticas em Java
- AVISO: exercícios para iniciantes PARTE 1
- Exercícios para Iniciantes - PARTE 1
- Visão geral do capítulo
- Material de apoio do capítulo
- Expressões comparativas
- Expressões lógicas
- Estrutura condicional (
if-else
) - AVISO: exercícios para iniciantes PARTE 2
- Exercícios para Iniciantes - PARTE 2
- Sintaxe opcional - operadores de atribuição cumulativa
- Sintaxe opcional -
switch-case
- Expressão condicional ternária
- Escopo e inicialização
- Visão geral do capítulo
- Material de apoio do capítulo
- Como utilizar o DEBUG no Eclipse (execução passo a passo)
- Estrutura repetitiva enquanto (
while
) - Teste de mesa com estrutura repetitiva enquanto
- Exercícios de teste de mesa com
while
- AVISO: exercícios para iniciantes PARTE 3
- Exercícios para Iniciantes - PARTE 3
- Estrutura repetitiva para (
for
) - Teste de mesa com estrutura repetitiva
for
- Exercícios de testes de mesa com
for
- AVISO: exercícios para iniciantes PARTE 4
- Exercícios para iniciantes PARTE 4
- Estrutura repetitiva faça-enquanto (
do-while
)
- Material de apoio do capítulo
- Restrições e convenções para nomes
- Operadores bitwise
- Funções interessantes para String
- Comentários em Java (básico)
- Funções (sintaxe)
- Visão geral do capítulo
- Material de apoio do capítulo
- Resolvendo um problema sem orientação a objetos
- Criando uma classe com três atributos para representar melhor o triângulo
- Criando um método para obtermos os benefícios de reaproveitamento e delegação
- Começando a resolver um segundo problema exemplo
Object
etoString
- Finalizando o programa
- Exercícios de fixação
- Membros estáticos - Parte 1
- Membros estáticos - Parte 2
- Exercício de fixação
- Visão geral do capítulo
- Material de apoio do capítulo
- Construtores
- Palavra
this
- Sobrecarga
- Encapsulamento
- Gerando automaticamente construtores, getters e setters com Eclipse
- Modificadores de acesso
- Exercício de fixação
- Correção do exercício de fixação - Parte 1
- Correção do exercício de fixação - Parte 2
- Visão geral do capítulo
- Material de apoio do capítulo
- Tipos referência vs. tipos valor
- Desalocação de memória - garbage collector e escopo local
- Vetores - Parte 1
- Vetores - Parte 2
- Exercícios de fixação sobre vetores
- Correção do exercício negativos
- Correção do exercício alturas
- Desafio sobre vetores (pensionato)
- Correção do desafio sobre vetores (pensionato)
- Boxing, unboxing e wrapper classes
- Laço for each
- Listas - Parte 1
- Listas - Parte 2
- Exercício proposto
- Correção em vídeo do exercício proposto
- Matrizes
- Exercício resolvido
- Exercício proposto
- Boas-vindas e avisos
- Material de apoio do capítulo
- Introdução a data-hora e duração
- Entendendo timezone (fuso horário)
- Padrão ISO 8601
- Operações importantes com data-hora
- Instanciando data-hora em Java
- Convertendo data-hora para texto
- Convertendo data-hora global para local
- Cálculos com data-hora
- Aviso: próximas duas aulas são sobre Date e Calendar
- Trabalhando com datas - Date
- Manipulando um Date com Calendar
- Apresentação do bônus Git e Github
- Material de apoio do capítulo
- Introdução ao Git e Github
- Repositório local e repositório remoto
- Instalação do Git no Windows
- Configurando sua identificação
- Mostrar arquivos ocultos e extensões
- Configurar chave SSH no Github
- Salvando primeira versão de um projeto no Github
- Salvando um novo commit
- Demo - clonar e modificar um projeto
- Git log para verificar histórico de versões
- Entendendo git status e stage
- Git diff e recurso source control do VS Code
- Git checkout
- Arquivo .gitignore
- Visão geral da segunda parte
- Removendo arquivos da área de stage
- Desfazendo modificações não salvas
- O que fazer quando abre o editor VIM
- Deletando último commit sem deletar modificações nos arquivos
- Deletando commits e também modificações nos arquivos
- Como atualizar o repositório local em relação ao remoto
- Como resolver push rejeitado por históricos diferentes
- Resolvendo pull com conflito
- Como sobrescrever um histórico no Github
- Como apontar o projeto para outro repositório remoto
- Visão geral do capítulo Enumerações e Composição
- Material de apoio do capítulo
- Enumerações
- Vamos falar um pouco sobre design
- Composição
- Exercício resolvido 1 - Parte 1
- Exercício resolvido 1 - Parte 2
- Exercício resolvido 2 (demo StringBuilder)
- Exercício de fixação
- Correção em vídeo do exercício de fixação
- Visão geral do capítulo Herança e Polimorfismo
- Material de apoio do capítulo
- Herança
- Upcasting e downcasting
- Sobreposição, palavra super, anotação
@Override
- Classes e métodos final
- Introdução ao polimorfismo
- Exercício resolvido
- Exercício de fixação
- Classes abstratas
- Métodos abstratos
- Exercício de fixação
- Correção em vídeo do exercício de fixação
- Visão geral do capítulo Tratamento de Exceções
- Material de apoio do capítulo
- Discussão inicial sobre exceções
- Estrutura try-catch
- Pilha de chamadas de métodos (stack trace)
- Bloco finally
- Criando exceções personalizadas
- Primeira solução - muito ruim
- Segunda solução - ruim
- Terceira solução - boa
- Exercício de fixação
- Correção do exercício de fixação
Repositório do projeto: chess-system-java
Repositório do projeto: chess-system-java
- Visão geral do capítulo Sistema Jogo de Xadrez
- Material de apoio do capítulo
- Criando projeto e repositório Git
- Primeira classe - Position
- Começando a implementar Board e Piece
- Camada Chess e imprimindo o tabuleiro
- Colocando peças no tabuleiro
- BoardException e programação defensiva
- ChessException e ChessPosition
- Pequena melhoria na impressão do tabuleiro
- Movendo peças
- Tratando exceções e limpando a tela
- Movimentos possíveis de uma peça
- Implementando movimentos possíveis da Torre
- Imprimindo os movimentos possíveis
- Implementando os movimentos possíveis do Rei
- Trocando de jogador a cada turno
- Manipulando peças capturadas
- Lógica de xeque - PARTE 1
- Lógica de xeque - PARTE 2
- Lógica de xequemate
- Contagem de movimentos das peças
- Peão
- Bispo
- Cavalo
- Rainha
- Jogada especial Roque - PARTE 1
- Jogada especial Roque - PARTE 2
- Jogada especial en passant - PARTE 1
- Jogada especial en passant - PARTE 2
- Jogada especial promoção
- Atualização de compliance
- Dando um tratamento melhor para promoção
- Visão geral do capítulo Trabalhando com Arquivos
- Material de apoio do capítulo
- Lendo arquivo texto com classes File e Scanner
- FileReader e BufferedReader
- Bloco try-with-resources
- FileWriter e BufferedWriter
- Manipulando pastas com File
- Informações do caminho do arquivo
- Exercício proposto
- Correção em vídeo do exercício proposto
- Visão geral do capítulo Interfaces
- Material de apoio do capítulo
- Interfaces
- Solução do problema - PARTE 1
- Solução do problema - PARTE 2 (sem interface)
- Solução do problema - PARTE 3
- Inversão de controle e injeção de dependência
- Exercício de fixação
- Correção do exercício de fixação PARTE 1
- Correção do exercício de fixação PARTE 2
- Herdar vs. cumprir contrato
- Herança múltipla e o problema do diamante
- Interface Comparable
- Default methods
- Visão geral do capítulo Generics, Set, Map
- Material de apoio do capítulo
- Introdução aos Generics
- Genéricos delimitados
- Tipos curinga
- Curingas delimitados
- HashCode e Equals
- Set
- Como Set testa igualdade
- Como TreeSet compara os elementos
- Exercício resolvido (Set)
- Exercício de fixação (Set)
- Map
- Exercício de fixação (Map)
- Visão geral do capítulo Programação Funcional e Expressões Lambda
- Material de apoio do capítulo
- Uma experiência com Comparator
- Programação funcional e cálculo lambda
- Interface funcional
- Predicate
- Consumer
- Function
- Criando funções que recebem funções como parâmetro
- Stream
- Pipeline (demo)
- Exercício resolvido (stream)
- Exercício de fixação
Repositório do projeto: demo-dao-jdbc-java
Repositório do projeto: demo-dao-jdbc-java
- Visão geral do capítulo
- Material de apoio do capítulo
- Visão geral do JDBC
- Nivelamento: Álgebra Relacional e SQL
- Instalando o MySQL
- Preparação do primeiro projeto no Eclipse - PARTE 1
- Preparação do primeiro projeto no Eclipse - PARTE 2
- Demo - recuperar dados
- Demo - inserir dados
- Demo - atualizar dados
- Demo - deletar dados
- Demo - transações
- Padrão de projeto DAO (Data Access Object)
- PROJETO - criando projeto e repositório Git
- Classe Department
- Classe Seller
- Interfaces DepartmentDao e SellerDao
- SellerDaoJDBC e DaoFactory
- Implementando findById
- Reutilizando a instanciação
- Implementando findByDepartment
- Implementando findAll
- Implementando insert
- Implementando update
- Implementando delete
- Implementação e teste do DepartmentDao
- Visão geral do capítulo
- Material de apoio do capítulo
- Instalação do STS e Postman
- Nivelamento JPA / Hibernate - PARTE 1
- Nivelamento JPA / Hibernate - PARTE 2 (Trabalhando com Maven)
- Nivelamento JPA / Hibernate - PARTE 3
Repositório do projeto: workshop-springboot3-jpa
Repositório do projeto: workshop-springboot3-jpa
- Visão geral do capítulo
- AVISO: sobre projeto atualizado
- Material de apoio do capítulo
- Criação do projeto
- Entidade User e seu resource
- Banco de dados H2, test profile, JPA
- JPA repository, injeção de dependência, database seeding
- Camada de serviço, registro de componentes
- Entidade Pedido. Datas com Instant e padrão ISO 8601 - PARTE 1
- Entidade Pedido. Datas com Instant e padrão ISO 8601 - PARTE 2
- Enum OrderStatus
- Entidade Category
- Entidade Product
- Associação muitos-para-muitos com JoinTable
- Entidade OrderItem. Associação muitos-para-muitos com dados extras - PARTE 1
- Entidade OrderItem. Associação muitos-para-muitos com dados extras - PARTE 2
- Associação muitos para muitos entre Product e OrderItem
- Entidade Payment, associação um para um
- Métodos subtotal e total
- Inserção de User
- Deleção de User
- Atualização de User
- Tratamento de exceção - findById
- Tratamento de exceção - delete
- Tratamento de exceção - update
- AVISO: implantação no Heroku
- Criando app Heroku e provisionando banco PostgreSQL
- Instalação do PostgreSQL
- Profile dev
- Obtendo script SQL a partir do PostgreSQL local
- Executando script SQL no servidor remoto
- Instalando o Heroku CLI
- Deploy do sistema no Heroku
- Testando o sistema em produção
Seção 24: Projeto: API Restful com Spring Boot e banco MongoDB (web services + NoSQL) - 26 aulas - 3h30m
Repositório do projeto: workshop-springboot3-mongodb
Seção 24: Projeto: API Restful com Spring Boot e banco MongoDB (web services + NoSQL) - 26 aulas - 3h30m
Repositório do projeto: workshop-springboot3-mongodb
- Visão geral do capítulo Projeto MongoDB com Spring Boot
- Material de apoio do capítulo
- Instalação do STS e Postman
- Instalação do MongoDB
- Instalação do Mongo Compass
- Nivelamento sobre NoSQL e MongoDB - PARTE 1
- Nivelamento sobre NoSQL e MongoDB - PARTE 2
- Primeiro commit - Projeto criado
- Entity User e REST funcionando
- Conectando ao MongoDB com repository e service
- Operação de instanciação da base de dados
- Usando padrão DTO para retornar usuários
- Obtendo um usuário por id
- Inserção de usuário com POST
- Deleção de usuário com DELETE
- Atualização de usuário com PUT
- Discutindo o design do modelo de domínio
- Criando entity Post com User aninhado
- Projeção dos dados do autor com DTO
- Referenciando os posts do usuário
- Endpoint para retornar os posts de um usuário
- Obtendo um post por id
- Acrescentando comentários aos posts
- Consulta simples com query methods
- Consulta simples com
@Query
- Consulta com vários critérios
Repositório do projeto: workshop-javafx-jdbc
Repositório do projeto: workshop-javafx-jdbc
- Visão geral do capítulo
- Material de apoio do capítulo
- Visão Geral do JavaFX
- Instalação do Scene Builder
- Preparação do Eclipse
- Criando um novo projeto JavaFX no Eclipse
- Testando o FXML
- Tratando eventos com JavaFX
- Mostrando Alert
- Usando TextField e Label (app para calcular soma)
- Limitações para TextField, interface Initializable
- ComboBox
- Visão geral dos principais containers de layout
- PARTE 2: Projeto Aplicação Desktop JavaFX
- Criação do projeto
- Tela MainView
- MainView design
- MainView controller
- About view
- DepartmentList view design
- DepartmentList controller
- DepartmentService
- Ação de inicialização como parâmetro (Consumer)
- Adicionando acesso ao banco de dados
- DepartmentForm (dialog) design
- DepartmentForm controller
- Passando um objeto Department para o formulário
- Salvando um novo departamento
- Padrão de projeto Observer para atualizar a TableView
- Validação de dados e ValidationException
- Atualizando departamento
- Deletando departamento
- Deletando pasta .settings
- SellerList
- SellerList Tableview
- SellerForm
- TextField & DatePicker
- Department ComboBox
- Salvando Seller
- Build da aplicação e preparação para distribuição
- Implantação da aplicação
- Opcional - criação de arquivo de lote
- Opcional - criação de atalho