AnimalDrawGame

Rodrigo BabisqueRodrigo Babisque | |
Cover image for AnimalDrawGame

Introdução

O Jogo do Bicho é um projeto pessoal em desenvolvimento. Trata-se de uma aplicação web construída utilizando .NET e RabbitMQ. O serviço de autorização já foi implementado, permitindo o cadastro de usuários e a geração de tokens JWT para autenticação.

Propósito e Objetivo

O principal objetivo deste projeto é aprofundar meus conhecimentos em .NET e em arquiteturas de microserviços, especialmente na integração de serviços através do RabbitMQ. O projeto também visa aprimorar minha habilidade de construir sistemas distribuídos e escaláveis, com foco em segurança e gerenciamento eficiente de usuários.

Além disso, o Jogo do Bicho é uma oportunidade de aplicar conceitos avançados de desenvolvimento, como a separação de responsabilidades entre serviços e a comunicação assíncrona entre eles. Este é um dos meus primeiros projetos utilizando RabbitMQ para orquestrar a comunicação entre serviços independentes.

Ferramentas Utilizadas

  • .NET Core
  • RabbitMQ
  • SQL Server
  • Docker
  • Entity Framework Core

Destaques

Há dois aspectos deste projeto dos quais me orgulho. O primeiro é a implementação do serviço de autorização, que foi projetado para ser seguro e eficiente, utilizando JWT para gerenciar sessões de usuário. A documentação do JWT foi uma referência importante para garantir que o sistema fosse seguro e escalável.

O segundo destaque é a integração com RabbitMQ, que permite a comunicação eficiente entre o AuthorizationService e o UserService. Isso garante que os dados dos usuários estejam sempre sincronizados entre os serviços, mesmo em um ambiente distribuído.

Desafios

Trabalhar em projetos maiores pode ser desafiador, especialmente no que diz respeito à organização do código e à gestão de dependências entre serviços. Em alguns momentos, o código se tornou complexo e difícil de manter, o que exigiu uma atenção especial para refatorá-lo e garantir que permanecesse limpo e compreensível.

A partir desse desafio, aprendi a importância de constantemente revisar e refatorar o código, além de adotar práticas de design que facilitem a escalabilidade e a manutenção. No futuro, planejo aplicar essas lições em outros projetos, garantindo que estejam preparados para a colaboração em equipe e a evolução contínua.

Principais Lições

No final das contas, este projeto foi uma grande oportunidade de aprendizado. Cada desafio encontrado foi uma oportunidade de crescimento, e eu aprendi muito ao persistir em busca de soluções, mesmo quando as dificuldades eram frustrantes.