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

backend

Home Escopo Processo Design/Mockups Configuração Arquitetura Gerência BD Qualidade Frontend Backend Analytics

⚙ 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