Skip to content

Aplicação back-end NestJS com Clean Architecture e validada pelo troféu de testes com TDD.

License

Notifications You must be signed in to change notification settings

Leo-Henrique/dinhericiar-back-end

Repository files navigation

Dinhericiar - back-end (em desenvolvimento)

O Dinhericiar tem o objetivo de ajudar as pessoas a gerenciar suas finanças pessoais.

Eu também aproveitei a ideia para aplicar tudo que venho estudando a nível técnico nos últimos anos conforme comentei abaixo.

Principais recursos

Clean Architecture

A Clean Architecture (arquitetura limpa) permite criar aplicações escaláveis, de fácil manutenção e de baixo acoplamento, tornando-a flexível o suficiente para trocar qualquer dependência / tecnologia externa de forma segura, sem a necessidade de modificar o alicerce da aplicação com as regras de negócio da problemática que está sendo resolvida.

Clean Architecture

Troféu de testes

A clássica pirâmide de testes prioriza testes unitários tanto para economizar dinheiro e priorizar a performance dos testes, mas essa abordagem costuma ser problemática por alguns motivos que vivenciei e que também já foram expostos pela comunidade:

  • Com um foco em testes unitários, eu deixo em segundo plano validar como uma unidade funciona trabalhando em conjunto com outras unidades (o que é de fato como o usuário utiliza a aplicação).
  • Abordagens como InMemoryTestDatabase ajudam a escrever os testes unitários, mas várias vezes em minhas próprias experiências, com tantos mocks e distanciação dos serviços realmente utilizados em produção, minhas aplicações se encontrava com diversos erros mesmo com todos os testes passando.
  • O tempo é muito precioso. Ter gastando tanto esforço com testes unitários e ainda assim encontrar diversos erros nos meus projetos me deixou frustrado com o tempo que gastei.

O peso em testes de integração é uma abordagem utilizada em algumas aplicações do Spotify e indicada pelo CEO da Vercel. No troféu de testes, há justamente esse foco, onde é priorizado testar o conjunto das unidades funcionando e consequentemente, anulando diversos mocks, trazendo os serviços reais que são realmente usados pelos usuários.

Testing Trophy

No Dinhericiar, esse é um atual preview da cobertura dos testes de integração (13/10/2024):

Dinhericiar testing coverage

Principais tecnologias

Inspirações

Rode localmente

Dependências globais

Você precisa ter duas principais dependências instaladas:

  • Node.js 20.5.1 (ou qualquer versão superior)
  • Docker 24.0.6 (ou qualquer versão superior)
  • PNPM 9.1.1 (ou qualquer versão superior) - opcional

Clone o projeto

# git
git clone https://github.com/Leo-Henrique/dinhericiar-back-end.git

# GitHub CLI
gh repo clone Leo-Henrique/dinhericiar-back-end

Instalar dependências

pnpm install

Rodar os serviços

pnpm services:dev:up

Rodar migrações do banco de dados

pnpm migrate:dev

Rode o projeto

pnpm start:dev

Rode os testes

# unitários
pnpm test:unit

# integração
pnpm test:integration

# cobertura dos testes de integração
pnpm test:integration:coverage

About

Aplicação back-end NestJS com Clean Architecture e validada pelo troféu de testes com TDD.

Topics

Resources

License

Stars

Watchers

Forks