Apresentação do bootcamp.
Como funciona o dia a dia na Eduzz.
Exemplo de Projeto no Figma.
Principios importantes
- Estrutura de pastas
- Separação de responsabilidade
- Entender o framework e a linguagem
Frameworks recomendados
- Redux Toolkit - Gerenciamento do Estado
- MUI - UI components
- Formik - Validação do formulário
- Emotion/Styled Component - Estilização
O que é Banco de Dados? Coleção organizada de informações.
- Bancos de dados relacionais
- Bancos de dados NoSQL
- Data warehouses
- Bancos de dados gráficos
- MySQL, MariaDB, Postgree, SQLServer, SQLite3
- Armazenam dados em tabelas e linhas
- Usam SQL
- ACID (Atomicidade, Consistência, Isolamento, Durabilidade)
- Integralidade do dado
- Dados bem definidos
- Firebase, MongoDB, ElasticSearch, Redis, Cassandra, DynamoDB...
- Flexibilidade
- Documentos (semelhantes a JSON), chave-valor
- Armazenando registros na mesma coleção que possuem diferentes campos ou atributos
- Escala horizontalmente
- Não tem uma forma padrão de recuperação de dados
- Identificador único de um registro na tabela
- Não pode ser NULL
- Não podem ser simples ou compostas
- Chave primária de outra tabela, ou dela mesma
- Pode ser NULL
- MySQL Workbench
- DBeaver
- HeidiSQL
- Versiona o schema da aplicação
- Controle de alterações do banco
- Pode ser adicionada ao deploy automático
- Pode ser usada para DADOS DE TESTE ou valores PRÉ DEFINIDO
- Pode ser adicionada ao deploy automático
- Sobre APIs;
- Primeiro endpoint (hands-on);
- Funcionamento do NodeJS;
- Relembrando o que é Typescript;
- Detalhar a arquitetura do projeto; e
- API funcionando!
APIs (Application Programming Interface - Interface de Programação de Aplicação)
V8
Dentro do diretório api
docker-compose up
yarn install
yarn start
- Conceitos sobre processamento assíncrono;
- Message Brokers;
- Funcionamento do RabbitMQ;
- Aplicação prática;
- Nova arquitetura do projeto; e
- Esqueci minha senha funcionando!
O que é assíncrono?
Um processo assíncrono é um processo ou função que executa uma tarefa "em segundo plano", sem que o usuário precise esperar que a tarefa termine.
Message Brokers
É quem define para qual fila vai a mensagem
Filas - Message Brokers - Eventos
RabbitMQ, Redis e Amazon SQS
O termo nuvem é o nome dado à tecnologia que permite a distribuição de serviços de computação e o acesso online a eles sem a necessidade de instalar programas. Justamente por não necessitar da instalação de programas, ou do armanezamento de dados, o conceito originado do inglês cloud computing faz alusão à "nuvem".
Alguns serviços na nuvem: Spotify, Youtube, Facebook, Instagram, Dropbox e Google Docs.
No meu servidor, tudo eu tenho que fazer, na nuvem eu tenho a possibilidade de tudo ser gerenciado pelo provedor escolhido.
Limitação de recurso: estou limitado ao poder computacional da máquina contratada (contratações de novas máquinas pode levar tempo).
Escalabilidade: Capacidade de um Sistema em adicionar ou remover recursos de maneira autônama sem interrupções.
Gerenciamento: Os serviços são gerenciados pelo provedor para que você ponha esforço no seu produto.
Custo: Normalmente os serviços contratados são cobrados por tempo de execução, armazenamento, e cosutumam ser baratos.
Confiabilidade: Facilita e reduz os custos de backup de dados, recuperação de desastre e continuidade dos negócios, já que os dados podem ser espelhados em diversos sites redundantes na rede do provedor em nuvem.
Segurança: Os provedores em nuvem oferecem um amplo conjunto de políticas, tecnlogias e controles que fortalecem a segurança, ajudando a proteger os dados, os aplicativos e a infraestrutura contra possíveis ameaças.
Diversos serviços para surpotarem seu produto:
- Banco de Dados
- Caching
- Armazenamento
- Backup
- Rede
- Monitoramento
- DNS
- CDN
- Autenticação/Autorização
- Inteligência Artificial
- Blockchain
- Contâineres
- Deploy
- Etc, etc, etc...
Provedores de serviços de nuvem: Amazon Web Services, Azure, Google Cloud Platform, Heroku, Vercel e Digital Ocean.
Serviços que vamos usar:
- AWS RDS
- AWS ECR
- AWS ECS
- GitHub Actions
RDS
É o serviço de banco de dados da AWS. É nele que criamos as nossas instâncias de banco de dados. É um serviço AWS e suporta uma gama de banco de dados relacionais.
ECR
Basicamente é o serviço de armazenamento de imagens de contêineres da AWS. Você também pode usar outros serviços fora da nuvem da AWS, como o Docker Hub.
ECS
Faz a orquestração dos nossos contêineres baseado nas configurações que definimos para eles. Ele é o serviço responsável pela escalabilidade da nossa aplicação.
Dicas/Conselhos e os bastidores de um DEV na Eduzz.