0% acharam este documento útil (0 voto)
12 visualizações41 páginas

Lógica e Fundamentos de Java

O documento é um guia abrangente sobre aprendizado de Java, cobrindo desde lógica de programação até conceitos avançados como manipulação de erros e testes. Ele inclui uma variedade de recursos, como artigos, vídeos e cursos, para ajudar os alunos a desenvolver suas habilidades em Java e programação orientada a objetos. O conteúdo é dividido em níveis, abordando fundamentos, coleções, e práticas de teste, proporcionando uma base sólida para desenvolvedores iniciantes e intermediários.

Enviado por

Ygor Mateus
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
12 visualizações41 páginas

Lógica e Fundamentos de Java

O documento é um guia abrangente sobre aprendizado de Java, cobrindo desde lógica de programação até conceitos avançados como manipulação de erros e testes. Ele inclui uma variedade de recursos, como artigos, vídeos e cursos, para ajudar os alunos a desenvolver suas habilidades em Java e programação orientada a objetos. O conteúdo é dividido em níveis, abordando fundamentos, coleções, e práticas de teste, proporcionando uma base sólida para desenvolvedores iniciantes e intermediários.

Enviado por

Ygor Mateus
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Java

TechGuide - Alura, FIAP e PM3

Nivel 1
Lógica de Programação:
Aprender lógica de programação, fundamental para o desenvolvimento de
software
Conhecer as bases para se criar, analisar e resolver problemas
computacionais de forma estruturada e eficiente
Entender o que são tipos de dados
Declarar variáveis, considerando os diferentes tipos
Conhecer os operadores de atribuição e comparação
Usar estruturas condicionais
Usar estruturas de repetição e laços
Usar funções, passando parâmetros e argumentos
Conteúdos
Artigo Lógica de programação: o que é e para que serve?
([Link]
programacao-o-que-e/)
Artigo Lógica de programação: guia completo para iniciantes
([Link]
Site Livro - Lógica de Programação
([Link]
YouTube O MÍNIMO QUE VOCÊ PRECISA SABER ANTES DE PROGRAMAR!
([Link]
Podcast Se você não aprender lógica de programação, você NÃO VAI
CONSEGUIR VAGA
([Link]
si=FtgYSOvaSZGo-B31ex5ANQ)
Conteúdos Alura:
Curso Formação A partir do zero: iniciante em programação
([Link]

Java - Fundamentos:
Java é uma linguagem de programação amplamente usada para codificar
aplicações Web. Java é uma linguagem multiplataforma, orientada a objetos
e centrada em rede que pode ser usada como uma plataforma em si. É uma
linguagem de programação rápida, segura e confiável para codificar tudo,
desde aplicações móveis e software empresarial até aplicações de big data
e tecnologias do servidor.
Conhecer os tipos primitivos
Declarar variáveis, considerando os diferentes tipos
Usar estruturas condicionais ('if', 'else')
Conhecer os operadores de atribuição e comparação
Usar estruturas de repetição e laços ('while', 'for')
Usar funções, passando parâmetros e argumentos
Manipular métodos
Manipular arrays e listas
Obter dados de uma API
Criar construtores
Conteúdos
Site O que é Java? ([Link]
Artigo Aprenda Comigo: Java — Parte 1
([Link]
42ef8fddd8b6)
YouTube FernandaDev: Java (Aula 1 - Classes, Objetos, Atributos e Métodos)
([Link]
YouTube Loiane Groner: Primeiro Programa em Java
([Link]
Conteúdos Alura:
Artigo Java: o que é, linguagem e um Guia para iniciar na tecnologia
([Link]
Podcast Hipster 313 - Ecossistema Java revisitado
([Link]
tech-313/)
Artigo Como começar a desenvolver em Java?
([Link]
java)
Artigo Meu primeiro programa em Java
([Link]
Artigo Java: Conheça o método main
([Link]
Artigo Desenvolvendo aplicações Java com o VS Code
([Link]
Artigo Diferença entre int e Integer em Java
([Link]
Artigo Como converter String para Date em Java
([Link]
java)
Artigo Iterando uma lista em Java
([Link]
Artigo Importando classes no Java
([Link]
Site Apostila: Java e Orientação a Objetos
([Link]
Site Apostila: Java para Desenvolvimento Web
([Link]
Alura: O que é o Java? ([Link]
YouTube

v=90NcVNsKGik)
Curso Formação Java e Orientação a Objetos
([Link]
Desafio 7 Days of Code: Java ([Link]

Conceitos de Orientação a Objetos:


A Programação Orientada a Objetos é um paradigma de programação de
software baseado na composição e interação entre diversas unidades
chamadas de 'objetos' e as classes, que contêm uma identidade,
propriedades e métodos). Ela é baseada em quatro componentes da
programação: abstração digital, encapsulamento, herança e polimorfismo.
Como funcionam objetos
Criar e utilizar construtores
O que são classes
Criar e utilizar métodos
Como funciona encapsulamento
O que é herança
O que é polimorfismo
Como funcionam interfaces
O que são abstrações
Conteúdos
Artigo Princípios básicos da Programação Orientação a Objetos (POO)
([Link]
programa%C3%A7%C3%A3o-orienta%C3%A7%C3%A3o-a-objetos-poo-
62da3998b7ce)
YouTube FernandaDev: O que é Programação Orientada a Objetos?(POO)
([Link]
YouTube Giuliana Bezerra: Desmistificando os tipos de referência - Ep. 8
([Link]
Conteúdos Alura:
[Link]: TechGuide - Orientação a Objetos – Hipsters Ponto
Tech #350 ([Link]
hipsters-ponto-tech-350/)
Artigo POO: o que é programação orientada a objetos?
([Link]
Site Apostila: Java e Orientação a Objetos
([Link]
Site Livro: Orientação a Objetos
([Link]
YouTube Alura: Orientação a objetos (com Roberta Arcoverde)
([Link]
YouTubeAlura: Imersão Java: Orientação a Objetos, APIs e além (e live
coding!) ([Link]
Curso Formação Java e Orientação a Objetos
([Link]
Curso Formação C# e Orientação a Objetos
([Link]
Curso Formação Python e orientação a objetos
([Link]
Curso Curso Orientação a Objetos com PHP: Classes, métodos e atributos
([Link]
Curso Curso JavaScript: programação orientada a objetos
([Link]
orientada-objetos)
Java - Manipulação de Erros:
O tratamento de erros refere-se aos procedimentos de resposta e
recuperação de condições de erro presentes em um aplicativo de software.
Em outras palavras, é o processo composto de antecipação, detecção e
resolução de erros de aplicação, de programação ou de comunicação.
Tratar exceções pré-definidas
Uso de 'try' e 'catch'
Criar exceções específicas
Fazer o processo de Debug
Conteúdos
Site Wikibooks: Java - Exceções
([Link]
Artigo Exceções em Java: Uma Primeira Conversa
([Link]
primeira-conversa-vanessa/?originalSubdomain=pt)
Artigo Criando Exceptions para impressionar no Teste Técnico
([Link]
tecnico-2nie)
YouTube Loiane Groner: Exceptions: try, catch
([Link]
Conteúdos Alura:
Artigo Evite o NullPointerException no Java
([Link]
ArtigoBe the exception! Dicas para dominar exceções em seus códigos
Java ([Link]
excecoes-em-seus-codigos-java-4nlo)
SiteJava Exceções e Controle de Erros ([Link]
java-orientacao-objetos/excecoes-e-controle-de-erros)
Curso Curso Java exceções: aprenda a criar, lançar e controlar exceções
([Link]
controlar-excecoes)

Java - Coleções:
Uma coleção representa um grupo de objetos, conhecidos como seus
elementos. Eles são como recipientes que agrupam vários itens em uma
única unidade. Algumas coleções permitem a duplicação de elementos e
outras não. Algumas são ordenadas e outras não ordenadas.
Aprender os usos e diferenças entre List, Set e Map
Aprender os usos e diferenças entre Equals e HashCode
Saiba trabalhar com ArrayList, LinkedList ou Vector
Classes Wrappers
Conteúdos
Site Acervo Lima: Coleções em Java ([Link]
java/)
Artigo [Link]: Básico efetivo sobre Coleções e Mapas com Java
([Link]
com-java-4bnc)
Artigo Equals e HashCode: O que é, porque usar e como implementar
([Link]
YouTube Caio Rodrigues: O Poder das Collections do Java
([Link]
YouTube Giuliana Bezerra: Aprenda a usar arrays no Java - Ep. 11
([Link]
Artigo [Link]: Domine as Coleções e Mapas com Java Stream
([Link]
de-uma-vez-por-todas)
Conteúdos Alura:
YouTube Alura: Aprofundando no Java: domine as Collections
([Link]
Curso Curso Java: trabalhando com listas e coleções de dados
([Link]

Java - Testes:
O teste de software é o processo de avaliação e verificação de que um
software realmente faz o que deveria fazer. Os benefícios dos testes
incluem a prevenção de bugs, a redução dos custos de desenvolvimento e a
melhoria do desempenho.
Usar testes unitários
Usar testes de integração
Usar testes de comportamento (behavior)
Usar mocks
Conteúdos
Artigo Testes Unitários: Fundamentos e Qualidade de Software!
([Link]
software-5af0)
Artigo Testes 101 — Testando aplicações Java
([Link]
java-a12465319e61)
Artigo Iniciando em testes automatizados com Java - Parte 1
([Link]
automatizados-configure-sua-m%C3%A1quina-windows-87e72e6fe1d1)
Artigo Iniciando em testes automatizados com Java - Parte 2
([Link]
com-java-parte-2-ddf43a63b422)
ArtigoQualidade e JUnit: introduzindo automatização de testes unitários do
seu software Java no dia-a-dia ([Link]
[Link]/qualidade-e-junit-introduzindo-
automatiza%C3%A7%C3%A3o-de-testes-unit%C3%A1rios-do-seu-
software-java-no-dia-a-dia-849611de5574)
Artigo Criando mocks e escrevendo testes unitários com Junit 5
([Link]
unit%C3%A1rios-com-junit-5-f54e6407bd7c)
Artigo Turbinando sua aplicação Java com Testes Parametrizados
([Link]
aplica%C3%A7%C3%A3o-java-com-testes-parametrizados-70517f885f81)
Aplicando automação de testes em Java com BDD utilizando
Artigo

Cucumber ([Link]
automa%C3%A7%C3%A3o-de-testes-em-java-com-bdd-utilizando-
cucumber-b0907cdd273b)
YouTube Leonardo Barauna: Teste Unitário em Java - Conceito
([Link]
YouTube Michelli Brito: TDD na prática com Java usando MockBean
([Link]
YouTube Michelli Brito: TDD na prática com Java usando MockMvc
([Link]
YouTube Jean: Testes unitários em @Service com Mockito
([Link]
Conteúdos Alura:
Artigo Tipos de testes: quais os principais e por que utilizá-los?
([Link]
utiliza-los)
Podcast [Link]: Testes Automatizados
([Link]
Curso Curso Java e refatoração: melhorando códigos com boas práticas
([Link]
boas-praticas)
Curso Curso Boas práticas de programação: automatizando testes com Java
([Link]
java)
Curso Curso Selenium: testes automatizados de aceitação em Java
([Link]
aceitacao-java)
Curso Curso BDD e Java: Behavior Driven Development com Cucumber
([Link]

Java - Pacotes:
Um pacote (package) em Java é usado para agrupar classes relacionadas,
de forma semelhante a uma pasta em um diretório de arquivos. Os pacotes
são usados para evitar conflitos de nomes e para escrever um código de
melhor manutenção.
Use imports e organize o seu código através de packages
Conhecer a [Link]
Entender a imutabilidade e a classe String
Entender a classe [Link]
Conhecer a [Link]
Conteúdos
Site Acervo Lima: Como criar um pacote em Java
([Link]
Site Acervo Lima: Pacotes em Java ([Link]
java/)
Artigo Padronizando pacotes em uma arquitetura REST
([Link]
arquitetura-rest-280e7a6c38bb)
YouTube Loiane Groner: Orientação a Objetos - Pacotes e import
([Link]
YouTube Pedro Cavalero: Criando Pacotes no Eclipse
([Link]
Conteúdos Alura:
YouTube Alura: Aprofundando no Java: domine as Collections
([Link]
Site Pacotes - Organizando suas classes e bibliotecas
([Link]
organizando-suas-classes-e-bibliotecas)
Curso Curso Java: trabalhando com listas e coleções de dados
([Link]

Estruturas de Dados:
No contexto dos computadores, uma estrutura de dados é uma forma
específica de armazenar e organizar os dados na memória do computador
para que esses dados possam ser facilmente recuperados e utilizados de
forma eficiente quando necessário posteriormente.
Conhecer as principais estruturas de dados
Implementar as principais estruturas de dados
Conteúdos
Estrutura de dados ([Link]
Artigo

dados-6afb386a6fc1)
Artigo Estrutura de Dados e Algoritmo - parte 1
([Link]
algoritmo-9cb6a9b14aa)
Artigo Estrutura de Dados e Algoritmo - parte 2
([Link]
algoritmo-deba0b384a0f)
YouTube Mario Souto - Dev Soutinho: Estruturas de dados com JavaScript
([Link]
Fabio Akita: Árvores ([Link]
YouTube

v=9GdesxWtOgs)
YouTube Loiane Groner: Estrutura de Dados com Java | Lista Encadeada
([Link]
YouTube Loiane Groner: Estrutura de Dados com Java | Filas
([Link]
YouTube Loiane Groner: Estrutura de Dados com Java | Pilhas
([Link]
Conteúdos Alura:
Site Apostila Python: Estruturas de dados
([Link]
de-dados)
Artigo Estruturas de dados: uma introdução
([Link]
Artigo Curso Estrutura de Dados: computação na prática com Java
([Link]
com-java)
Podcast [Link]: Algoritmos e estrutura de dados - Hipsters 186
([Link]
dados-hipsters-186-a375)
Curso Curso PHP: dominando as Collections
([Link]
Curso Curso Python: crie a sua primeira aplicação
([Link]
Desafio 7 Days of Code: Estruturas de Dados
([Link]

Nivel 2
JVM:
Máquina virtual Java (em inglês, Java Virtual Machine, JVM) é um programa
que carrega e executa os aplicativos Java, convertendo os bytecodes em
código executável de máquina. A JVM é responsável pelo gerenciamento
dos aplicativos, à medida que são executados. Graças à máquina virtual
Java, os programas escritos em Java podem funcionar em qualquer
plataforma de hardware e software que possua uma versão da JVM,
tornando assim essas aplicações independentes da plataforma onde
funcionam.
Entender como funciona a máquina virtual do Java
Conteúdos
Site Java Virtual Machine (JVM)
([Link]
machine)
Site Wikipédia: Máquina virtual Java
([Link]
JVM por dentro ([Link]
Artigo

553bab89a027)
YouTube Descompila: Entendendo a JVM na prática
([Link]
YouTube Lucas Silva: O que é JVM, JRE e JDK?
([Link]
YouTube Giuliana Bezerra: Entenda o que é WORA, JVM, JDK e JRE - Ep. 1
([Link]
Conteúdos Alura:
Artigo JVM: conhecendo o processo de execução de código
([Link]
de-codigo)
Podcast [Link]: E o futuro do Java! – Hipsters 27
([Link]
YouTube Alura: Java é lento? JIT e Otimizações na Java Virtual Machine
([Link]

Java - Gerenciamento da Memória:


Em Java, o gerenciamento de memória é o processo de alocação e
desalocação de objetos, chamado de gerenciamento de memória. Java faz
o gerenciamento de memória automaticamente. Java usa um sistema de
gerenciamento automático de memória chamado de Garbage Collector
(coletor de lixo). Assim, não somos obrigados a implementar a lógica de
gerenciamento de memória em nossa aplicação.
Entender como funciona a memória e seu gerenciamento em Java
Entender como funciona a memória o Garbage Collector
Conteúdos

Artigo Gerenciamento de Memória Java


([Link]
java-3969e7b8423c)
Artigo Java Garbage Collector — Por que precisamos conhecê-lo?
([Link]
conhec%C3%AA-lo-9d26ebb0a6d8)
YouTube Loiane Groner: Garbage Collector (Coletor de Lixo)
([Link]
YouTubeDias de Dev: Estratégias de gestão de memória - O que é Garbage
Collector ([Link]

Spring Framework:
O Spring é um framework open source para a plataforma Java. Trata-se de
um framework não intrusivo, baseado nos padrões de projeto (design
patterns) de inversão de controle (IoC) e injeção de dependência. No Spring
o contêiner se encarrega de "instanciar" classes de uma aplicação Java e
definir as dependências entre elas através de um arquivo de configuração
em formato XML, inferências do framework, o que é chamado de auto-
wiring ou ainda anotações nas classes, métodos e propriedades. Dessa
forma, o Spring permite o baixo acoplamento entre classes de uma
aplicação orientada a objetos.
Entender o conceito de Injeção de Dependências
Entender o padrão MVC
Usar o Spring Data para manipular dados
Conteúdos
Site Documentação Spring Framework (inglês)
([Link]
Artigo Spring Framework: existem muitos, mas para que cada um serve?
([Link]
mas-para-que-cada-um-serve-b1773bcb69f0)
MVC não é Arquitetura! ([Link]
Artigo

n%C3%A3o-%C3%A9-arquitetura-1f5cca077f18)
Michelli Brito: Spring MVC ([Link]
YouTube

v=2RSrcKDqWyo)
YouTube Michelli Brito: O que é um bean em Spring Framework
([Link]
YouTube Dev Eficiente: O que é e como funciona o Spring MVC?
([Link]
Conteúdos Alura:

Artigo Spring: Conheça esse framework Java


([Link]
Artigo Primeiros passos com o Spring Framework
([Link]
Podcast [Link]: Spring Framework – Hipsters 87
([Link]
YouTube Alura: O que é Spring Framework?
([Link]
YouTube Alura: Melhores práticas com Spring Framework
([Link]
Curso Formação Java e Microsserviços com Spring e RabbitMQ
([Link]
Curso Formação Java Web: crie aplicações usando Spring Boot
([Link]
Site Livro da Casa do Código: Vire o jogo com Spring Framework
([Link]
Desafio 7 Days of Code: Spring ([Link]

Spring Boot:
O Spring Boot é um framework de código aberto baseado em Java usado
para criar microserviços com o Spring Framework. Ele é usado para
construir aplicações Spring independentes e prontas para produção.
Criar aplicações Spring standalone
Usar os servidores HTTP embutidos
Conteúdos

Site Documentação Spring Boot (inglês) ([Link]


boot)
Artigo EngDB: Como o Spring Boot está ajudando os desenvolvedores?
([Link]
Artigo Porque você deve usar Spring Boot
([Link]
boot-a22f75da0955)
Artigo Resumo Curso Spring Boot API REST: Construa uma API - Alura
([Link]
construa-uma-alura-maikel-souza-1f/?
trk=articles_directory&originalSubdomain=pt)
YouTube Michelli Brito: Iniciando uma aplicação Spring Boot
([Link]
YouTube Michelli Brito: API REST com Spring Boot
([Link]
D2FP9wkg12AavzmVRWEcnJ)
YouTubeDev Multitask: 5 coisas para saber de Spring ANTES de cair no
Spring Boot! ([Link]
Conteúdos Alura:
CursoFormação Java e Spring Boot ([Link]
spring-boot-3)
Curso Formação Java Web: crie aplicações usando Spring Boot
([Link]

Build tools Java:


Uma build tool é um sistema que permite automatizar todas as tarefas
rotineiras de um projeto de uma forma organizada e que evite que o
desenvolvedor tenha que perder tempo. Em outras palavras, adicionar uma
nova biblioteca, realização de testes, empacotamento e deploy, ou até
mesmo, a compatibilidade entre as diversas IDEs são tarefas facilmente
resolvidas com uma build tool.
Conheça as principais ferramentas de build do Java, como Maven, Jenkins,
Apache Ant, Gradle, etc., e como usá-las
Conteúdos
SiteMicrosoft Docs: Maven e outras ferramentas de build para java (com
legenda em português) ([Link]
beginners/maven-and-other-build-tools-for-java)
Artigo Entenda o que são build tools do mundo Java
([Link]
do-mundo-java-682a26e38ff2)
Artigo Ant e o deploy e build de Projetos Java
([Link]
[Link])
YouTube by { iorio }: Introdução ao Maven e Instalando a ferramenta
([Link]
YouTube Pedro Cavalero: Entendendo Maven no Spring Boot
([Link]
Conteúdos Alura:

YouTube Alura: Conhecendo as build tools no mundo Java


([Link]
YouTube Alura: Começando com o Gradle: Tasks e comandos básicos
([Link]
CursoCurso Maven: gerencie dependências e faça o build de aplicações
Java ([Link]
build-aplicacoes-java)

Java - Persistência:
O conceito de "persistência de dados" refere-se a garantir que as
informações inseridas na aplicação serão armazenadas em um meio em que
possam ser recuperadas de forma consistente. Ou seja, são registros
permanentes e que não são perdidos quando há o encerramento da sessão.
Entender sobre JDBC e JPA
Usar frameworks como Spring Data e Hibernate
Comunicar-se com um banco de dados relacional
Entender a diferença entre relacionamentos EAGER e LAZY
Planejar queries com join fetch
Encapsular o acesso em um DAO
Entender como a memória funciona nessa situação
Conteúdos
Site IBM Docs: API de Persistência Java (JPA)
([Link]
persistence-api-jpa)
Artigo Do JDBC ao Spring Data (ou: é possível reduzir código?)
([Link]
codigo-361f)
YouTube Rafael Mesquita: Persistência de Dados - Java JDBC
([Link]
YouTube Rafael Mesquita: Persistência de Dados - Java JDBC Códigos
([Link]
YouTube Michelli Brito: JPA - Java Persistence API
([Link]
Michelli Brito: JPA e Hibernate - configurando a transação
YouTube

manualmente ([Link]
Conteúdos Alura:

Site Apostila Java para Desenvolvimento Web: Bancos de Dados e JDBC


([Link]
Curso Curso Java e JDBC: trabalhando com um banco de dados
([Link]
Curso Java e JPA: consultas avançadas, performance e modelos
Curso

complexos ([Link]
avancadas-performance-modelos-complexos)
Curso Curso Persistência com JPA: Hibernate
([Link]

Nivel 3
Arquitetura de Microsserviços:
Microsserviços são uma abordagem de arquitetura na qual o software
consiste de pequenos serviços independentes que se comunicam entre si e
são organizados de acordo com seus domínios de negócio.
Aprender o conceito de arquitetura planejada para microsserviços
Realizar a comunicação usando APIs
Melhorar a escalabilidade de um sistema

Conteúdos
Artigo Google Cloud: O que é a arquitetura de microsserviços?
([Link]
br)
Artigo Amazon: O que são microsserviços?
([Link]
YouTube Otavio Lemos: Microsserviços | O mínimo que você precisa saber
([Link]
YouTubeDouglas Mugnos: O que é arquitetura de microsserviços? Como ela
funciona? ([Link]
Conteúdos Alura:
[Link]: TechGuide - Microsserviços – Hipsters Ponto Tech
Podcast

#349 ([Link]
tech-349/)
YouTube Alura: O que são Microsserviços?
([Link]
Podcast [Link]: Microserviços - Hipsters 17
([Link]
Podcast [Link]: Microsserviços na Caelum - Hipsters On The Road 6
([Link]
the-road-6-a436)
[Link]: Microsserviços autônomos na Usabilla - Hipsters On
Podcast

The Road 10 ([Link]


autonomos-na-usabilla-hipsters-on-the-road-10-a424)
Site Alura+: O que são Microsserviços?
([Link]
c699)
Site Alura+: Tipos de Microservices
([Link]
Curso Curso Microsserviços: padrões de projeto
([Link]
Curso Curso Microsserviços: explorando os conceitos
([Link]
aprofundando-conceitos)
Curso Curso Microsserviços na prática: entendendo a tomada de decisões
([Link]
decisoes)

Java - Concorrência:
Programação concorrente é um paradigma de programação para a
construção de programas que fazem uso da execução simultânea de várias
tarefas computacionais interativas, que podem ser implementadas como
programas separados ou como um conjunto de threads criadas por um
único programa.
Executar tarefas simultaneamente
Colocar tarefas para aguardar até que um determinado evento ocorra
Entender como a memória funciona nessa situação
Conteúdos
Artigo Concorrência e Paralelismo — Threads, múltiplos processos e
AsyncIO — Parte 1
([Link]
threads-m%C3%BAltiplos-processos-e-asyncio-parte-1-fbbdd2309d74)
Artigo Concorrência e Paralelismo — Threads, múltiplos processos e
AsyncIO — Parte 2
([Link]
threads-m%C3%BAltiplos-processos-e-asyncio-parte-2-8e539c59a16a)
Artigo Understanding Java threads once and for all (inglês)
([Link]
711f71e0ec1e)
YouTube Loiane Groner: Criando Threads + métodos start, run e sleep
([Link]
Michelli Brito: Threads em java ([Link]
YouTube

v=rVsyXGwbmag)
Conteúdos Alura:

Site Programação Concorrente E Threads


([Link]
programacao-concorrente-e-threads)
Curso Curso Java threads: aprenda a criar, gerenciar e aplicar com o Spring
([Link]
spring)

Contêineres:
Os contêineres são pacotes de software que contêm todos os elementos
necessários para serem executados em qualquer ambiente. Gerenciamento
de contêineres é uma área crucial na computação em nuvem e DevOps, que
envolve o uso de tecnologias para automatizar o processo de criação,
implantação, escalonamento e monitoramento de contêineres. Contêineres
são unidades de software padronizadas que permitem aos desenvolvedores
empacotar todas as dependências de um aplicativo (código, bibliotecas,
configurações, etc.) em um único pacote. Isso permite que o aplicativo seja
executado de forma consistente em qualquer ambiente de infraestrutura.
A tecnologia de contêineres, como exemplificada pelo Docker, fornece um
ambiente consistente e portátil para desenvolvimento, teste e implantação
de aplicativos, o que é vital para o trabalho eficiente de engenharia de
dados. Além disso, o Kubernetes, um sistema de orquestração de
contêineres, permite o gerenciamento, a automação e a escalabilidade de
aplicações baseadas em contêineres em ambientes de produção. Dominar
esses conceitos e tecnologias possibilita a engenheiros de dados construir e
manter pipelines de dados eficientes e confiáveis.
O Kubernetes (também conhecido como k8s ou kube) é uma plataforma de
orquestração de containers open source que automatiza grande parte dos
processos manuais necessários para implantar, gerenciar e escalar
aplicações em containers.
Isolar seu software para funcionar independentemente
Implantar software em clusters
Modularizar seu sistema em pacotes menores
Conhecer a plataforma Docker
Conhecer Kubernetes
Conteúdos
Site IBM: Contêineres ([Link]
SiteHPE: O que são contêineres? ([Link]
is/[Link])
Site Google Cloud: O que são contêineres?
([Link]
Site Azure: O que é um contêiner? ([Link]
br/resources/cloud-computing-dictionary/what-is-a-container/)
Artigo Red Hat: O que é Kubernetes ([Link]
br/topics/containers/what-is-kubernetes)
Artigo Azure: O que é Kubernetes? ([Link]
br/topic/what-is-kubernetes/)
Artigo Kubernetes - Guia de Referência Gratuito
([Link]
gratuito-a2c1be8e7593)
YouTube Código Fonte TV: Containers // Dicionário do Programador
([Link]
YouTube Código Fonte TV: Kubernetes // Dicionário do Programador
([Link]
YouTube Insight Lab: Revisão Docker - Curso de Introdução ao Kubernetes
([Link]
Pisani da ArcH: Kubernetes - entenda e comece a arquitetar agora
YouTube

mesmo ([Link]
Conteúdos Alura:

O que é Kubernetes ([Link]


Artigo

kubernetes)
Artigo Criando volumes com Docker
([Link]
Artigo Docker Compose para compor uma aplicação
([Link]
docker-compose)
YouTubeAlura: O que são Containers? ([Link]
v=jv4_sLlGOS0)
YouTube Alura: Containers, Docker e Kubernetes (com Giovanni Bassi)
([Link]
Podcast [Link]: Containers e Docker - Hipsters 75
([Link]
hipsters-75-a511)
Podcast [Link]: Kubernetes - Hipsters 177
([Link]
Podcast [Link]: Microsserviços e Kubernetes na [Link] -
Hipsters On The Road 56
([Link]
americanas-com-hipsters-on-the-road-56-a857)
Curso Formação Orquestração de containers com Kubernetes
([Link]
Curso Curso Docker: criando e gerenciando containers
([Link]
containers)
Curso Curso Kubernetes: Pods, Services e ConfigMaps
([Link]
configmap)
Curso Curso Kubernetes: Deployments, Volumes e Escalabilidade
([Link]
escalabilidade)
Curso Curso Google Kubernetes Engine ([Link]
online-google-kubernetes-engine-primeiros-passos)
Curso Curso Kubernetes na Digital Ocean: gerenciando aplicações
conteinerizadas ([Link]
ocean)
Curso Amazon EKS: gerenciando aplicações conteinerizadas com
Curso

Kubernetes ([Link]
kubernetes)
Curso Curso Azure: gerencie Kubernetes com AKS e ACR
([Link]
aks-acr)

Kafka:
O Apache Kafka é uma plataforma distribuída de transmissão de dados que
é capaz de publicar, subscrever, armazenar e processar fluxos de registro
em tempo real. Essa plataforma foi desenvolvida para processar fluxos de
dados provenientes de diversas fontes e entregá-los a vários clientes.
Utilizar o Kafka para comunicação assíncrona
Criar microsserviços com Kafka
Criar produtores e consumidores
Entender como usar o Kafka para paralelismo e execução serializada
Obter garantias relativas ao envio ou entrega das mensagens

Conteúdos
Site Red Hat: O que é Apache Kafka? ([Link]
br/topics/integration/what-is-apache-kafka)
Artigo Kafka — Produzindo mensagens com Java
([Link]
java-13d326223507)
Artigo Criando consumers e producers em Kafka com Java
([Link]
[Link])
Artigo Apache Kafka — Aprendendo na prática
([Link]
codifica%C3%A7%C3%A3o-na-pratica-9c6a4142a08f)
YouTube Rodrigo Freitas: Java - Kafka para Iniciantes
([Link]
YouTube Expertos Tech: Como conectar o JAVA com o APACHE KAFKA
([Link]
Conteúdos Alura:
Alura: O que é Kafka? ([Link]
YouTube

v=G6Tcy7hNdA8)
YouTube Alura: Começando com Kafka - Hipsters Ponto Talks 12
([Link]
Podcast [Link]: Tudo sobre Kafka - Hipsters On The Road 14
([Link]
on-the-road-14-a411)
Curso Formação Apache Kafka ([Link]
Site Livro Apache Kafka e Spring Boot da Casa do Código
([Link]

Habilidade Auxiliar: Infraestrutura


Git e GitHub - Fundamentos:
Git é um sistema de controle de versão distribuído gratuito e de código
aberto projetado para lidar com tudo, desde projetos pequenos a muito
grandes com velocidade e eficiência.
GitHub é um serviço de hospedagem para desenvolvimento de software e
controle de versão usando Git.
Criar um repositório
Clonar um repositório
Fazer commit, push e pull de e para o repositório
Reverter um commit
Criar branches e pul requests
Lidar com merge e conflitos
Conteúdos

Site GitHub Documentação ([Link]


Site GitHub Pages Documentação
([Link]
pages/about-github-pages)
Site Git School - Visualizing Git ([Link]
Site Dangit, Git!?! ([Link]
Rafaella Ballerini: O que é Git e GitHub? - definição e conceitos
YouTube

importantes 1/2 ([Link]


YouTubeRafaella Ballerini: Como usar Git e GitHub na prática! - desde o
primeiro commit até o pull request! 2/2 ([Link]
v=UBAX-13g8OM)
YouTubeMario Souto - Dev Soutinho: Git: Entendendo de vez como funciona
do melhor e mais visual jeito possível ([Link]
v=4-tfJ-ZyA0Q)
YouTube Mario Souto - Dev Soutinho: Como colocar seu projeto no ar DE
GRAÇA via GitHub! | Hospedagem com GitHub Pages
([Link]
YouTube CodandoTV(Rods) - 5 coisas que você precisa saber sobre Git
([Link]
YouTubeCodandoTV(Rods) - README de Sucesso: Transforme seu Projeto
ou seu Perfil em Destaque no GitHub ([Link]
si=49ah_HRPIwpSEX4A)
Conteúdos Alura:
Artigo Git e Github: O que são, Como Configurar e Primeiros Passos
([Link]
Artigo Mais git com o hub: a linha de comando do Github
([Link]
Podcast Hipsters 184: Guia do Iniciante em Github
([Link]
github-hipsters-184-a378)
Site GitHub: diferentes maneiras de compartilhar seu projeto
([Link]
de-compartilhar-seu-projeto-c2002)
Site Websérie: Git e Github para Sobrevivência
([Link]
Podcast Hipsters 109: Git e Github
([Link]
a474)
YouTube Alura: Git e Github para Sobrevivência 01: Como o Git funciona?
([Link]
Curso Curso Git e GitHub: compartilhando e colaborando em projetos
([Link]
colaborando-projetos)
Curso Curso Git e GitHub: dominando controle de versão de código
([Link]
codigo)
Desafio 7 Days of Code: GitHub ([Link]

HTTP - Fundamentos:
HTTP significa Hyper Text Transfer Protocol. A comunicação entre
computadores cliente e servidores web é feita enviando solicitações HTTP e
recebendo respostas HTTP.
Entender a diferença dos verbos HTTP
Testar os requests e ver os status codes no navegador
Saber fazer uma requisição HTTP na linha de comando com WGET
Baixar uma imagem com WGET
Fazer um post
Conteúdos

Site MDN Web Docs: Uma visão geral do HTTP


([Link]
Site MDN Web Docs: Métodos de requisição HTTP
([Link]
Site HTTP Cats ([Link]
Site HTTP Dogs ([Link]
Fabiano Gabardo Lemos: Requisições HTTP - GET, POST, PUT,
YouTube

PATCH DELETE ([Link]


YouTube Programador a Bordo: Protocolo HTTP e TCP/IP - Introdução
([Link]

Conteúdos Alura:
Artigo HTTP: Desmistificando o protocolo da Web
([Link]
1)
Artigo Métodos de requisição do HTTP
([Link]
Artigo Qual é a diferença entre HTTP e HTTPS?
([Link]
Podcast [Link]: HTTP/2: magia com o novo protocolo - Hipsters 13
([Link]
hipsters-13-a573)
Curso Curso HTTP: Entendendo a web por baixo dos panos
([Link]
dos-panos)

JSON:
JSON significa JavaScript Object Notation (notação de objeto JavaScript). É
um formato de texto para armazenar e transmitir dados.
Criar um objeto
Transformar um objeto em uma string
Transformar uma string em objeto
Manipular um objeto
Conteúdos

MDN Web Docs: JSON ([Link]


Site

BR/docs/Web/JavaScript/Reference/Global_Objects/JSON)
Site MDN Web Docs: Trabalhando com JSON
([Link]
Artigo Introdução ao JSON
([Link]
7825b1a550ff)
YouTube Marco Bruno: O que é JSON e como criar um objeto
([Link]
Conteúdos Alura:

Artigo O que é JSON? ([Link]


Curso Curso MySQL e JSON: persistindo JSON de maneira eficiente
([Link]

Linha de comando - Fundamentos:


CLI é um programa de linha de comando que aceita entradas de texto para
executar funções do sistema operacional.
Conhecer os principais comandos
Conteúdos
SiteMicrosoft Docs: Como usar argumentos de linha de comando para
terminal do Windows ([Link]
br/windows/terminal/command-line-arguments?tabs=windows)
YouTubeEstevan Maito: Linha de comando básica - 8 comandos mais
frequentes - WINDOWS e LINUX ([Link]
v=rKBqXJZocYk)
YouTube Ninja do Linux: Comandos básicos da linha de comando do Linux
([Link]
Conteúdos Alura:

Artigo CMD: dicas para trabalhar no prompt do Windows


([Link]
windows)
Artigo Como configurar variáveis de ambiente no Windows, Linux e macOS
([Link]
linux-macos)
SitePrimeiras aulas do Curso Windows Prompt: Trabalhando na linha de
comando ([Link]
cmd)
Curso Curso Windows Prompt: Trabalhando na linha de comando
([Link]
Curso Curso Terminal: aprenda comandos para executar tarefas
([Link]

Cloud - Fundamentos:
Cloud, ou computação em nuvem é a distribuição de serviços de
computação pela Internet usando um modelo de preço pago conforme o
uso. Uma nuvem é composta de vários recursos de computação, que
abrangem desde os próprios computadores (ou instâncias, na terminologia
de nuvem) até redes, armazenamento, bancos de dados e o que estiver em
torno deles. Ou seja, tudo o que normalmente é necessário para montar o
equivalente a uma sala de servidores, ou mesmo um data center completo,
estará pronto para ser utilizado, configurado e executado.
Conhecer a diferença entre IaaS, PaaS e SaaS
Conhecer os maiores provedores de cloud
Especializar-se em algum provedor
Conteúdos
Artigo Computação em nuvem
([Link]
515930304cf9)
O que é cloud? ([Link]
Artigo

%C3%A9-cloud-991109e708c6)
YouTube Gabs Ferreira: Por que investir e estudar cloud?
([Link]
Andre Iacono: O que é MICROSOFT AZURE? Qual Certificação
YouTube

começar em 2022? ([Link]


AWS: O que é a AWS? ([Link]
YouTube

v=8JI9wQ8sUdQ)
YouTube O que é Google Cloud e por que aprender?
([Link]
Artigo AWS vs Google Cloud vs Azure: o que cada um tem de melhor?
([Link]
cada-um-tem-de-melhor-52107174f7b7)
YouTube Código Fonte TV: Azure (A plataforma Cloud da Microsoft)
([Link]
YouTube Mundo da Cloud: AWS do Zero ao Expert
([Link]
v=HiBCv9DolxI&list=PLtL97Owd1gkQ0dfqGW8OtJ-155Gs67Ecz)
Conteúdos Alura:

[Link]: TechGuide - Fundamentos Cloud – Hipsters Ponto


Tech #348 ([Link]
hipsters-ponto-tech-348/)
Artigo Cloud: o que é, História e Guia da computação em nuvem
([Link]
Podcast [Link]: Uma jornada Para o Cloud - Hipsters Deep Dive 005
([Link]
deep-dive-005-a1100)
Podcast [Link]: Histórias do Cloud - Hipsters 04
([Link]
Artigo Heroku, Vercel e outras opções de cloud como plataforma
([Link]
plataforma)
Artigo AWS: Guia sobre o que é Amazon Web Services, seus Serviços e
Certificações ([Link]
Artigo Terraform: criando máquinas na Azure
([Link]
Alura: O que é cloud? ([Link]
YouTube

v=wev9fMrg-TU)
YouTube Alura: AWS, Google Cloud e Azure: Por onde começar? |
[Link] ([Link]
v=z9k6rsdmWc0&t=300s)
YouTube Alura: Certificação em Cloud: Azure, AWS, Google | [Link]
([Link]
Curso Formação Começando em Cloud Computing
([Link]
Curso Formação Amazon Web Services
([Link]
Curso Formação Google Certified Associate Cloud Engineer
([Link]
engineer)
Curso Formação Certificação AWS Certified Cloud Practitioner
([Link]
Curso Formação Containers com AWS ECS e EKS
([Link]
Curso Formação Google Cloud Platform
([Link]
Curso Formação Certificação Google Certified Associate Cloud Engineer
([Link]
engineer)
Curso Formação Azure ([Link]
azure)
Curso Formação Certificação AZ-900: Microsoft Azure Fundamentals
([Link]
azure-fundamentals)

SQL - Fundamentos:
SQL (Structured Query Language, traduzindo, Linguagem de Consulta
Estruturada) é uma linguagem de programação padronizada que é usada
para gerenciar bancos de dados relacionais e realizar várias operações
sobre os dados neles contidos.
Conhecer os comandos mais comuns do SQL
Usar SELECT para consultar uma tabela
Usar INSERT para inserir dados em uma tabela
Usar UPDATE para atualizar uma tabela
Usar DELETE para remover dados de uma tabela
Usar JOIN para conectar os dados de múltiplas tabelas
Conhecer as cláusulas (FROM, ORDER BY, etc)
Conteúdos

Artigo SQL — O que é e como funciona na prática?


([Link]
funciona-na-pr%C3%A1tica-6ae7a322554a)
SQL: comandos básicos ([Link]
Artigo

comandos-b%C3%A1sicos-483a8dc12909)
YouTube CreateSe: Comandos básicos do SQL
([Link]
Conteúdos Alura:

Artigo O que é SQL? ([Link]


Artigo SQL JOIN: Aprenda INNER, LEFT, RIGHT, FULL e CROSS
([Link]
Alura: O que é SQL e NoSQL? ([Link]
YouTube

v=aure5d3B88g)
Formação Conhecendo SQL ([Link]
Curso

conhecendo-sql)
Curso Curso SQL com MySQL: manipule e consulte dados
([Link]
Curso Formação SQL com MySQL Server da Oracle
([Link]
Artigo SQL e NoSQL: trabalhando com bancos relacionais e não relacionais
([Link]
relacionais)
Curso Microsoft SQL Server 2022: conhecendo SQL
([Link]
CursoCurso de PostgreSQL ([Link]
postgresql-primeiros-passos)
Curso SQL com Oracle Database: manipule e consulte dados
([Link]
consulte-dados)
SQL e MySQL ([Link]
Podcast

mysql-hipsters-ponto-tech-404-a9270)

Habilidade Auxiliar: Boas práticas


SOLID:
O Solid possui cinco princípios considerados como boas práticas no
desenvolvimento de software que ajudam os programadores a escrever os
códigos mais limpos, separando as responsabilidades, diminuindo
acoplamentos, facilitando na refatoração e estimulando o reaproveitamento
do código.
Conteúdos

Artigo Princípios de S.O.L.I.D em C# — Guia prático


([Link]
c-guia-pr%C3%A1tico-cbb1e6584284)
YouTube Filipe Deschamps: SOLID fica fácil com Essas Ilustrações
([Link]
YouTube Central dotNET: Princípios de SOLID com C#
([Link]
YouTube Felipe Pinheiro - Tech: Princípios SOLID, o que é DIP?
([Link]
Dev Eficiente: SOLID - Uma reflexão sobre o Princípio da
YouTube

responsabilidade única ([Link]

Conteúdos Alura:
ArtigoSOLID: o que é e quais os 5 princípios da Programação Orientada a
Objetos (POO) ([Link]
Podcast SOLID: Código bom e bonito - Hipsters Ponto Tech 219
([Link]
bonito-hipsters-ponto-tech-219-a649)
Alura: Clean Code e Solid ([Link]
YouTube

v=XV9B4LX_re8)
Curso Curso C#: aplique princípios SOLID
([Link]
CursoCurso Boas práticas de programação: melhore o código de uma API
Java ([Link]
melhore-codigo-api-java)
Curso Curso SOLID com PHP: princípios da programação orientada a objetos
([Link]
objetos)
Curso Curso iOS: escrevendo código de qualidade com SOLID em Swift
([Link]
solid-swift)
Curso SOLID com TypeScript: aplicando boas práticas em orientação a
objetos ([Link]
praticas-orientacao-objetos)
Curso Formação Boas práticas em C#
([Link]
Curso Formação Boas práticas em PHP
([Link]
Curso Formação Boas práticas em Java
([Link]
Site Livro Casa do Código: Desbravando SOLID - Práticas avançadas para
códigos de qualidade em Java moderno
([Link]
YouTube CodandoTV(Rods): SOLID e o 'D' do Principio da Inversão de
Dependência usando a Injeção de Dependência para ajudar
([Link]

Clean Architecture:
A Clean Architecture (Arquitetura Limpa) é uma forma de desenvolver
software, de tal forma que apenas olhando para o código fonte de um
programa, você deve ser capaz de dizer o que o programa faz.

Conteúdos
Artigo Descomplicando a Clean Architecture
([Link]
cf4dfc4a1ac6)
YouTube Como DEV ser!: Entenda CLEAN ARCHITECTURE de uma vez por
todas! ([Link]
YouTube Full Cycle: O que é Clean Architecture
([Link]
YouTubeCodandoTV(Rods) - Simplificando o Clean Architecture +MVVM na
sua aplicação mobile - Guia Completo ([Link]
I5I4zsnYLlSjD)
Conteúdos Alura:
Site Clean Architecture (Arquitetura Limpa) - O que é?
([Link]
arquitetura-limpa-o-que-e--c204)
Podcast [Link]: Clean Architeture - Hipsters Ponto Tech 254
([Link]
Alura: Arquitetura de sistemas ([Link]
YouTube

v=oedWxgAZc2A)
Site Primeiras aulas do curso Java e Clean Architecture: descomplicando
arquitetura de software ([Link]
architecture)
CursoCurso Java e Clean Architecture: descomplicando arquitetura de
software ([Link]
CursoCurso PHP e Clean Architecture: descomplicando arquitetura de
software ([Link]
achitecture)

Design Patterns:
Na engenharia de software, um "padrão de projeto" (Design Pattern em
inglês) é uma solução geral e reutilizável para um problema que ocorre
normalmente dentro de um determinado contexto de projeto de software.
Conhecer e aplicar os principais Design Patterns
Conteúdos

Artigo Design Patterns — O que são e quais os benefícios?


([Link]
quais-os-benef%C3%ADcios-9cd0cfdd6ebf)
Design Patterns ([Link]
Artigo

727494af001d)
YouTubeMatheus Castiglioni: O que são design patterns (padrões de
projetos) e para que servem? ([Link]
v=KNWd1aWtsMw)
YouTube RinaldoDev: Design Patterns - o que são? Por que aprender a
utilizar? ([Link]
Conteúdos Alura:

[Link]: TechGuide - Design Patterns – Hipsters Ponto Tech


Podcast

#347 ([Link]
tech-347/)
Artigo Design patterns: Breve introdução aos padrões de projeto
([Link]
projeto)
Podcast [Link]: Design Patterns - Hipsters 206
([Link]
Curso Curso Design Patterns em Java I: boas práticas de programação
([Link]
Curso Curso Design Patterns C# I: boas práticas de programação
([Link]
Curso Curso Design Patterns em PHP: padrões comportamental
([Link]
comportamental)
Curso Curso Design Patterns em PHP: padrões estruturais
([Link]
Curso Curso Design Patterns em PHP: padrões criacionais
([Link]

Clean Code:
Aplicar técnicas simples que visam facilitar a escrita e leitura de um código
Refatorar seu código para que fique mais claro
Conteúdos

Artigo Clean Code: O que é? Porque usar?


([Link]
%C3%A9-porque-usar-1e4f9f4454c6)
YouTube Filipe Deschamps: CLEAN CODE 1 - Introdução
([Link]
YouTube Filipe Deschamps: CLEAN CODE 2 - O que é código limpo?
([Link]
Livro Código limpo: habilidades práticas do Agile software
([Link]
Martin/dp/8576082675)
Conteúdos Alura:

Artigo Clean Code: O que é, Casos de Uso, Exemplo de Código Limpo


([Link]
Alura: Clean Code e Solid ([Link]
YouTube

v=XV9B4LX_re8)
Livro Orientação a Objetos e SOLID para Ninjas
([Link]
_pos=2&_sid=fe732c657&_ss=r)

Conceitos de Design Orientado a Domínio (Domain-Driven Design


- DDD):
O Design Orientado a Domínio (DDD) é uma abordagem ao projeto e
desenvolvimento de software que é primeiramente informado pelos
requisitos de negócios. Os componentes do programa (objetos, classes,
matrizes, etc.) indicam a indústria, setor ou domínio empresarial em que o
negócio opera.
Modelar domínios de forma efetiva
Basear projetos complexos em modelos do domínio
Conhecer os blocos de construção de DDD
Conteúdos
ArtigoDomain-Driven Design, do início ao código ([Link]
software/domain-driven-design-do-in%C3%ADcio-ao-c%C3%B3digo-
569b23cb3d47)
Artigo Introdução ao DDD ([Link]
inc/introdu%C3%A7%C3%A3o-ao-ddd-2cad38e4234a)
YouTube Dias de Dev: O que é Domain-Driven Design
([Link]
YouTube Otavio Lemos: DDD + Clean Architecture
([Link]
Conteúdos Alura:
Alura: Domain Driven Design ([Link]
YouTube

v=n40Z1c9Ryog)
Site Domain-Driven Design (DDD) - O que é?
([Link]
que-e--c283)
SitePrimeiras aulas do curso Java e Domain Driven Design: apresentando
os conceitos ([Link]
design-conceitos)
Curso Curso Java e Domain Driven Design: apresentando os conceitos
([Link]
conceitos)
SitePrimeiras aulas do curso PHP e Domain Driven Design: apresentando
os conceitos ([Link]
php)
Curso Curso PHP e Domain Driven Design: apresentando os conceitos
([Link]

TechGuide - Alura
Alura, PM3 e FIAP
O [Link] é um projeto open source

Você também pode gostar