Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • W 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
  • Gastrô
  • Wiki
  • Wiki
  • Arquitetura

Arquitetura · Changes

Page history
Update Arquitetura authored Apr 13, 2025 by Nicholas Spolti's avatar Nicholas Spolti
Hide whitespace changes
Inline Side-by-side
Arquitetura.md
View page @ 75344250
<table>
<tr>
<th> [Home](home) </th>
<th> [Escopo e Cronograma](escopo e cronograma) </th>
<th> [Processo](processo) </th>
<th> [Design/Mockups](design/mockups) </th>
<th> [Configuração](configuracao) </th>
<th> [Arquitetura](arquitetura) </th>
<th> [Infra](infraestrutura) </th>
<th> [Código](codigo) </th>
<th> [BD](banco de dados) </th>
</tr>
<tr>
<th>
[Home](home)
</th>
<th>
[Escopo e Cronograma](escopo%20e%20cronograma)
</th>
<th>
[Processo](processo)
</th>
<th>
[Design/Mockups](design/mockups)
</th>
<th>
[Configuração](configuracao)
</th>
<th>
[Arquitetura](arquitetura)
</th>
<th>
[Infra](infraestrutura)
</th>
<th>
[Código](codigo)
</th>
<th>
[BD](banco%20de%20dados)
</th>
</tr>
</table>
# Arquitetura MVC (Model-View-Controller)
A arquitetura **MVC (Model-View-Controller)** é um padrão amplamente utilizado no desenvolvimento de software para organizar a estrutura de aplicações. Ela separa a aplicação em três componentes principais: **Model**, **View** e **Controller**, cada um com responsabilidades bem definidas. Abaixo, explicamos como cada componente funciona e como eles interagem entre si.
---
## **Componentes do MVC**
### 1. **Model**
O **Model** é responsável por gerenciar os dados e a lógica de negócios da aplicação. Ele interage diretamente com o banco de dados para realizar operações como criação, leitura, atualização e exclusão de dados (CRUD). Além disso, o Model notifica o Controller sobre mudanças nos dados, permitindo que a interface do usuário seja atualizada.
- **Responsabilidades do Model:**
- Gerenciar os dados da aplicação.
- Implementar as regras de negócio.
- Interagir com o banco de dados.
---
### 2. **View**
A **View** é responsável pela interface com o usuário. Ela exibe as informações ao cliente (usuário final) e recebe as interações realizadas por ele, como cliques, preenchimento de formulários, etc. A View não contém lógica de negócios, apenas apresenta os dados fornecidos pelo Controller.
- **Responsabilidades da View:**
- Renderizar os dados fornecidos pelo Controller.
- Exibir a interface gráfica para o usuário.
- Capturar as interações do usuário e enviá-las ao Controller.
---
### 3. **Controller**
O **Controller** atua como intermediário entre o Model e a View. Ele recebe as requisições do cliente, processa essas requisições (se necessário, interagindo com o Model) e retorna uma resposta para a View. O Controller é responsável por coordenar o fluxo de dados entre os componentes.
- **Responsabilidades do Controller:**
- Receber as requisições do cliente.
- Processar as requisições e aplicar as regras de negócio (se necessário).
- Atualizar o Model e/ou a View com base nas interações do usuário.
---
## **Fluxo de Dados no MVC**
1. O **Cliente** (usuário) faz uma **requisição** ao servidor.
2. O **Controller** recebe a requisição e decide como processá-la.
- Se necessário, o Controller interage com o **Model** para buscar ou atualizar dados.
3. O **Model** realiza as operações no banco de dados e retorna os dados processados ao Controller.
4. O **Controller** envia os dados para a **View**, que renderiza a interface para o cliente.
5. O **Cliente** recebe a **resposta** e interage novamente, reiniciando o ciclo.
---
## **Diagrama do MVC**
O diagrama abaixo ilustra o fluxo de dados e a interação entre os componentes do MVC:
![image](uploads/62e23854ce4b28b4b2e734bcf1b96fc5/image.png)
- **Client**: Representa o usuário que faz requisições e recebe respostas.
- **Controller**: Recebe as requisições do cliente, processa os dados e coordena as interações entre Model e View.
- **Model**: Gerencia os dados e a lógica de negócios, interagindo com o banco de dados.
- **View**: Exibe os dados e a interface gráfica para o cliente.
---
## **Vantagens do MVC**
- **Separação de responsabilidades**: Cada componente tem uma função específica, facilitando a manutenção e o entendimento do código.
- **Reutilização de código**: Componentes como o Model podem ser reutilizados em diferentes partes da aplicação.
- **Facilidade de teste**: A separação de responsabilidades permite testar cada componente de forma isolada.
- **Escalabilidade**: A arquitetura facilita a adição de novas funcionalidades sem impactar significativamente os outros componentes.
---
\ No newline at end of file
Clone repository
  • Arquitetura
  • BD
  • BancoDeDados
  • Codigo
  • Design
    • Mockups
  • EAP
  • Escopo e Cronograma
  • Infraestrutura
  • Processo
  • Testes automatizados
  • banco de dados
  • configuracao
  • Home