Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • Wiki Wiki
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Infrastructure Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Sistema Organizacional de Peças Automotivas
  • WikiWiki
  • Wiki
  • backend

Last edited by Gabriel Bohn Dec 06, 2024
Page history
This is an old version of this page. You can view the most recent version or browse the history.

backend

⚙ Backend

Stacks definidas:

Linguagem de programação Static Badge

A decisão de utilizar o TypeScript se deve ao fato da busca por maior controle das variáveis e a familiaridade da equipe com o JavaScript.

Runtime Static Badge

Utilizar Node.js com TypeScript proporciona um ambiente de desenvolvimento consistente tanto no lado do servidor quanto no cliente (se usar também o TypeScript no frontend). Isso pode simplificar o desenvolvimento full-stack.

Framework Static Badge

Nest (NestJS) é um framework para construção de aplicações eficientes e escaláveis no lado do servidor com Node.js. Ele utiliza JavaScript progressivo, é construído com suporte total a TypeScript (embora ainda permita que desenvolvedores programem em JavaScript puro) e combina elementos de OOP (Programação Orientada a Objetos), FP (Programação Funcional) e FRP (Programação Reativa Funcional).

Além disso seguimos uma arquitetura baseada no modelo de Controller-Service, utilizando o framework NestJS. Essa abordagem permite organizar as responsabilidades de forma clara e eficiente, separando a lógica de negócio da lógica de controle e roteamento.

image

Controller: A camada de controle, localizada na pasta controller, é responsável por receber as requisições HTTP, validar os dados recebidos e delegar as tarefas apropriadas para a camada de serviço. Por exemplo, o arquivo user.controller.ts gerencia todas as operações relacionadas aos usuários, como criação, atualização e obtenção de dados. Para garantir a qualidade do código, também utilizamos arquivos de teste, como o user.controller.spec.ts, para validar o comportamento esperado dos controladores.

Service: A camada de serviço, na pasta service, concentra toda a lógica de negócio. É aqui que ocorrem operações como manipulação de dados, chamadas ao banco de dados ou interações com APIs externas. O arquivo user.service.ts contém a lógica específica para gerenciar usuários, enquanto o arquivo user.service.spec.ts testa as funcionalidades implementadas, garantindo que os serviços funcionem corretamente.

DTOs: Na pasta dtos, são definidos os Data Transfer Objects, que padronizam os dados que transitam entre o cliente e o servidor. Por exemplo, o arquivo user.dto.ts define a estrutura esperada para as operações relacionadas aos usuários, garantindo que os dados estejam sempre consistentes e válidos.

Módulo: O arquivo user.module.ts registra o módulo de usuários, organizando todas as dependências, como controladores e serviços. Essa abordagem modular do NestJS facilita o isolamento de funcionalidades e torna a aplicação mais escalável e fácil de manter.

Essa estrutura modular, combinada com o modelo Controller-Service, promove uma separação clara de responsabilidades, garantindo que o código seja organizado, testável e fácil de escalar. O uso de testes unitários em arquivos .spec.ts demonstra um compromisso com a qualidade e a confiabilidade da aplicação. Essa arquitetura, aliada à organização do frontend, torna o sistema robusto e eficiente para desenvolvimento e manutenção contínuos.

Clone repository

Buscapeca-Logo__1_

Buscapeça

Home

Escopo

Processo

Design/Mockups

Configuração

Arquitetura

Gerência

Banco de Dados

Qualidade

Frontend

Backend