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
    • Metrics
    • 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
  • Sem Barreiras
  • WikiWiki
  • Wiki
  • backend

Last edited by Bruno Ramos Freitas Apr 29, 2024
Page history
This is an old version of this page. You can view the most recent version or browse the history.

backend

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

Backend

Esta página centraliza informações sobre o repositório Backend do projeto Sem Barreiras.

Sumário

  • Organização do repositório
  • Padrões de código
    • Nomenclatura
    • Tratamento de exceções

Organização do repositório

O projeto Spring Boot do repositório de Backend do projeto está organizado seguindo um padrão Controller-Service-Repository, e esse padrão está refletido na organzação de pacotes do projeto. Optou-se por esse padrão pois, ainda que este padrão possa trazer problemas como acoplamento de regras de negócio e tecnologias de ORM (sendo estes problemas que poderiam ser resolvidos com um padrão de arquitetura limpa), ele segmenta o código em camadas visando uma separação de preocupações/responsabilidades (Separation of concerns). Além disso, é um padrão fácil de entender para desenvolvedores que não possuem muita experiência com Spring Boot ou com o desenvolvimento de APIs em geral.

Diante disso, os pacotes do projeto estão divididos da forma abaixo:

  • 📁 config: Configurações personalizadas da aplicação (ex.: configuração da conexão com o banco de dados, declaração de Beans).
  • 📁 controller: Expõe pontos de entrada para comunicação com o mundo exterior. Neste projeto, gerencia a API REST da aplicação, incluindo responsabilidades como autenticação e autorização, e delega o processamento de lógica de negócio para a camada de services.
  • 📁 dto: Classes utilizadas para transferir dados entre camadas de uma aplicação (não são entidades, são apenas classes que modelam essas informações a serem trafegadas na aplicação).
    • 📁 request: DTOs para dados de entrada das requisições.
    • 📁 response: DTOs para dados de resposta das requisições.
  • 📁 exception: Exceções personalizadas da aplicação.
  • 📁 model: Entidades do negócio.
  • 📁 repository: Encapsula a lógica de acesso ao banco de dados para buscar e persistir dados.
    • 📁 impl: Classes que implementam as interfaces em repository.
  • 📁 service: Implementação da lógica de negócio (interfaces). Se necessário buscar ou salvar dados, delega isso para a camada de repository.
    • 📁 impl: Classes que implementam as interfaces em service.
  • 📁 util: Classes e métodos utilitários (ex.: formatação de datas)

Padrões de código

Nomenclatura

TODO

Tratamento de exceções

TODO

Clone repository
  • Banco de Dados
  • Sprint 0
  • Sprint 1
  • Sprint 2
  • Sprint 3
  • Sprint 4
  • arquitetura
  • backend
  • configuracao
  • design_mockups
  • escopo
  • frontend
  • gerencia
  • Home
  • processo
View All Pages