Olá! Meu nome é Alisson e este repositório documenta minha jornada de aprendizado com o curso.dev, do Filipe Deschamps.
O projeto central do curso é a construção de um clone completo e funcional do TabNews, e é exatamente isso que você verá aqui. Diferente de um curso tradicional, o objetivo não é apenas seguir uma lista de aulas, mas sim absorver uma filosofia de desenvolvimento de software. Este espaço registrará o processo, os erros, as descobertas e a construção deste projeto, do zero, com foco nos fundamentos.
Sinta-se à vontade para acompanhar a evolução e o raciocínio por trás de cada commit. 🚀
Este repositório seguirá a metodologia do curso, focada em construir um software robusto e bem arquitetado, entendendo o "porquê" de cada decisão. A estrutura do meu aprendizado será:
- 🧠 Filosofia e Fundamentos: Entendendo os princípios essenciais para criar software de qualidade. Mais do que aprender uma linguagem, o foco é em como pensar como um engenheiro de software: a importância dos testes, da clareza do código e das decisões de arquitetura.
- 🏗️ Estruturando o Projeto do Zero: Configuração do ambiente de desenvolvimento, inicialização do controle de versão com Git e a criação da estrutura base da aplicação com Next.js, preparando o terreno para um desenvolvimento sustentável.
- 🧪 Desenvolvimento Guiado por Testes (TDD):
Adotando a prática de escrever testes antes do código de produção. O objetivo é garantir que a aplicação seja testável, confiável e que cada nova funcionalidade (como a criação de um
endpointda API) seja adicionada com segurança. - 💻 Construindo a API e o Backend:
Desenvolvimento do núcleo da aplicação em Node.js, implementando as regras de negócio, criando os
endpointsda API e conectando com o banco de dados PostgreSQL. - 🎨 Desenvolvendo a Interface (Frontend): Construção da interface de usuário com React e Next.js, consumindo a API que criamos e tornando a aplicação interativa e funcional para o usuário final.
- 🐳 Containerização com Docker: Empacotando a aplicação e o banco de dados em containers Docker para garantir que o ambiente de desenvolvimento seja consistente, portátil e fácil de reproduzir.
- ⚙️ Integração e Entrega Contínua (CI/CD): Automatizando o processo de testes e deploy. Configuração de uma esteira com GitHub Actions para que cada alteração no código principal seja testada e, se aprovada, enviada para produção automaticamente.
- 🚀 Deploy na Nuvem: Colocando o projeto no ar em um provedor de nuvem (como a Vercel), aprendendo os conceitos práticos para que o mundo possa acessar a aplicação.
Estas são as tecnologias que estou aprendendo e utilizando ao longo desta jornada:
Stack Principal:
Banco de Dados:
Testes:
DevOps & Cloud:
Ferramentas de Desenvolvimento:
Adoraria trocar ideias sobre desenvolvimento, fundamentos e a jornada de aprendizado. Me encontre em: