Skip to content

023. Milestone 1 (ENCERRAMENTO)

Filipe Deschamps edited this page Jan 18, 2022 · 1 revision

30/07/21

Mais uma Live de encerramento simplesmente SENSACIONAL com direito a revisitar vários tópicos fundamentais do projeto e até fazer deploy de um Banco de Dados em Produção (numa sexta-feira). Outro detalhe legal foi toda ajuda que a turma foi dando pelo chat durante a Live de algumas dúvidas que foram surgindo. Eu realmente sou apaixonado por eles e não troco por ninguém!!! Bom, vamos ao resumo dos principais tópicos:

  1. Por que estou feliz? (10:00) - Começo a Live de fato falando algums motivos que me fazem estar muito feliz, onde em resumo: 1) O projeto do TabNews está me dando oportunidade de aprender muita coisa, mas com um detalhe especial que é registrar tudo em tempo-real, desde a primeira issue criada no repositório até essas Lives e as entradas no Diário aqui do README. E isso vai se manter para todos os próximos tópicos, como Autenticação/Autorização e vai se tornar um excelente material de referência para qualquer outro projeto futuro. 2) Falando em projetos futuros, a fundação que está sendo criada no repositório do TabNews pode servir para vários tipos de projetos que qualquer pessoa queira fazer e aproveitar ou código ou os conhecimentos. 3) Por último, estou feliz porque na Milestone a seguir, a Milestone 2 já teremos conteúdo pra valer na Home do site.
  2. Como instalar e rodar o projeto (14:00) - Bastante simples esse item, pois basta você ter na sua máquina Node.js e Docker (com Docker Compose), clonar o repositório, instalar as dependências e rodar npm run dev que todo o ambiente vai subir para você continuar o desenvolvimento.
  3. Testes automatizados e CI (33:43) - Novamente bastante simples, uma vez que você pode rodar os testes pelo comando npm test ou npm run test:watch caso queira rodá-los de forma interativa. Mas o legal é que isso foi implementado duas vezes, uma por esse PR onde a estratégia era subir todos os serviços dependentes por dentro do script de teste, e por esse outro PR onde subir esses serviços foi removido do código e delegado para camada de infraestrutura que abraça os testes (e ficou muito melhor e mais resistente). Vale muito a pena entrar no primeiro PR para acompanhar a discussão, e no segundo PR para acompanhar a resolução. Outro detalhe nesta parte foi a descoberta do act que simula o ambiente do Github Actions, o que é ótimo para não precisar ficar marretando o seu repositório com pushes ou pull requests para implementar as Actions.
  4. Padrão de Linting de Code Style e Commits (1:06:32) - Isso não é obrigatório, mas bastante necessário caso você não queira perder o controle e padronização do seu projeto. Na parte Code Style que você pode verificar nesse PR é feito o linting pelo eslint integrado diretamente ao next a partir da versão 11 e também pelo prettier. Já para parte de commits, esse PR implementa o uso de Conventional Commits, além de adicionar uma ferramenta chamada cz que pode ser acionada pelo comando npm run commit e que auxilia as pessoas a criarem as mensagens no formato certo. E ter um padrão de commits é ótimo para fazermos changelogs automatizados. Fora isso, vale a pena destacar a issue que discute várias sugestões sobre esse assunto e também a padronização de outras coisas dentro do Github e que não foram implementadas nessa Milestone.
  5. Arquitetura e Pastas (1:18:36) - Como o projeto está num estágio pequeno, não deu para desenvolver muito o assunto na Live, porém essa issue tem uma discussão sensacional sobre o assunto, inclusive numa ideia que o Next.js nos travou.
  6. Mudança de Licença (1:19:12) - Não vai ter issue melhor que essa aqui para explicar o que aconteceu, pois a conversa lá foi de altíssimo nível. Mas em resumo, saímos da licença MIT para a GPLv3.
  7. (1:31:25) - E esse foi o momento mais massa da Live, onde a gente deleta o banco de Produção, cria de novo e configura as variáveis de ambiente. Com isso, foi possível rodar as migrations pela primeira vez em ambiente de Produção e quem conseguiu fazer isso (dado que apenas uma única pessoa iria conseguir rodar), foi o huogerac, e ele tirou um print do retorno 201 e eu coloquei esse print logo alí em baixo, inclusive logo depois a minha reação de nem ter conseguido listar as migrations pendentes. Vale a pena destacar também a issue que mostra e resolve alguns problemas de conexão, e também a issue que definiu a DigitalOcean como a provedora do banco e os motivos de usar Postgres sem ORM.

image image

Clone this wiki locally