Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • Blockchain Wiki Blockchain 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
  • Certificação por meio de Blockchain
  • Blockchain WikiBlockchain Wiki
  • Wiki
  • arquitetura

arquitetura · Changes

Page history
Update arquitetura authored Mar 22, 2024 by Victor dos Santos Cruz's avatar Victor dos Santos Cruz
Hide whitespace changes
Inline Side-by-side
arquitetura.md
View page @ 40ec3a9e
| [Home](home) | [Escopo e Cronograma](escopo) | [Processo](processo) | [Design/Mockups](design_mockups) | [Configuração](configuracao) | [**Arquitetura**](arquitetura) | [Código](codigo) | [BD](banco_dados) | [Qualidade](qualidade) | [Utilização](utilizacao) | | [Home](home) | [Escopo e Cronograma](escopo) | [Processo](processo) | [Design/Mockups](design_mockups) | [Configuração](configuracao) | [**Arquitetura**](arquitetura) | [Código](codigo) | [BD](banco_dados) | [Qualidade](qualidade) | [Utilização](utilizacao) |
| :----------: | :---------------------------: | :------------------: | :--------------: | :--------------------------: | :----------------------------: | :--------------: | :---------------: | :--------------------: | :----------------------: | | :----------: | :---------------------------: | :------------------: | :--------------: | :--------------------------: | :----------------------------: | :--------------: | :---------------: | :--------------------: | :----------------------: |
# Arquitetura do SistemaTest # Arquitetura do Sistema
## Descrição ## Descrição
Esta seção irá abordar a arquitetura selecionada para o Backend e Frontend explicando os motivos das escolhas das tecnologias utilizadas junto ao funcionamento da aplicação. Esta seção irá abordar a arquitetura selecionada para o Backend e Frontend explicando os motivos das escolhas das tecnologias utilizadas junto ao funcionamento da aplicação.
## Sumário
- [Arquitetura do Sistema](#arquitetura-do-sistema)
- [Descrição](#descrição)
- [Sumário](#sumário)
- [Tecnologias](#tecnologias)
- [React](#react)
- [TypeScript](#typescript)
- [Java Spring Boot](#java-spring-boot)
- [PostgreSQL](#postgresql)
- [Firebase](#firebase)
# Tecnologias
O time realizou um debate para mapear os conhecimentos tecnológicos de todos os integrantes da equipe para facilitar e nortear as decisões sobre as tecnologias a serem usadas no desenvolvimento da aplicação levando em consideração o **tempo de entrega**, **conhecimentos existentes de cada integrante da equipe** e **conhecimentos que gostaríamos de adquirir durante o desenvolvimento**.
Após realizar esse levantamento, optamos por trabalhar com as tecnologias citas abaixo:
## React
React é uma biblioteca JavaScript de código aberto mantida pelo Facebook, focada no desenvolvimento de interfaces de usuário (UI). Ela promove a construção de interfaces de usuário por meio de componentes reutilizáveis, que encapsulam a lógica e a aparência de partes específicas da UI. Utiliza um conceito de Virtual DOM para melhorar o desempenho, minimizando as manipulações diretas do DOM do navegador. Isso resulta em atualizações mais eficientes e rápidas da interface do usuário.
A escolha de React foi baseada em três pontos:
* Conhecimento prévio de alguns membros da equipe referente a tecnologia;
* Necessidade por parte dos stakeholders para aplicativos nativos para o plataforma web;
* Pesquisa realizada com o time para descobrir conhecimentos que gostaríamos de adquirir.
## TypeScript
Com a adição de TypeScript, React se beneficia das vantagens da tipagem estática opcional. TypeScript é um superset tipado de JavaScript que oferece melhorias significativas na detecção de erros durante o desenvolvimento. Ao usar TypeScript com React, é possível melhorar a detecção de erros, definindo tipos para props, estado e outros elementos do React. Isso ajuda a capturar erros de digitação e de lógica mais cedo no processo de desenvolvimento, tornando o código mais robusto e menos propenso a erros.
Além disso, TypeScript permite a geração automática de documentação, facilitando a compreensão do código para os membros da equipe. Ele também torna a refatoração mais segura, já que o compilador pode identificar automaticamente onde os tipos foram alterados e quais partes do código precisam ser ajustadas. A integração do TypeScript com ferramentas de desenvolvimento, como IDEs, editores de código e sistemas de construção, proporciona uma experiência de desenvolvimento mais robusta e eficiente. Ao combinar React com TypeScript, os desenvolvedores podem aproveitar ao máximo as vantagens da tipagem estática enquanto desenvolvem interfaces de usuário modernas e dinâmicas na web.
A escolha de TypeScript foi baseada em quatro pontos:
* Tipagem Estática Opcional;
* Documentação Automática a partir da tipagem;
* Detecção Antecipada de Erros;
* Refatoração Segura
## Java Spring Boot
O Spring Framework é um dos frameworks mais populares e abrangentes para o desenvolvimento de aplicativos Java. Ele fornece um conjunto de recursos abrangente para desenvolver aplicativos empresariais robustos e escaláveis. O Spring Boot é uma extensão do Spring Framework que simplifica significativamente o processo de desenvolvimento de aplicativos Java, oferecendo configurações padrão e convenções de projeto para uma rápida configuração e implantação de aplicativos.
A escolha do Java Spring Boot foi baseada em quatro pontos:
* Convenções de Configuração
* Autoconfiguração do projeto
* Spring Boot Starter (Conjunto de dependências pré-configuradas que facilita a inclusão de recursos adicionais em um aplicativo Spring Boot)
* Facilidade de implantação com servidor web embutido.
## PostgreSQL
O PostgreSQL é um sistema de gerenciamento de banco de dados relacional (RDBMS) de código aberto amplamente utilizado em uma variedade de aplicativos e cenários. Ele foi desenvolvido inicialmente como um projeto de pesquisa na Universidade da Califórnia, Berkeley, e desde então cresceu para se tornar uma das opções mais populares e confiáveis para armazenamento de dados.
A escolha do PostgreSQL foi baseada em três pontos:
* Padrão SQL e Modelo Relacional
* Transações ACID (Atomicidade, Consistência, Isolamento e Durabilidade)
* Extensibilidade com suporte a criação de funções e procedimentos armazenados em várias linguagens de programação
## Firebase
Firebase é uma plataforma desenvolvida pelo Google para a criação de aplicativos móveis e da web de uma forma efetiva, rápida e simples. Ele contém diversas funcionalidades já desenvolvidas, incluindo um serviço de autenticação e oferece uma SDK para Java que inclui suporte para essa autenticação de usuários. Com essa SDK iremos implementar facilmente este recurso.
A escolha do Firebase foi baseada em quatro pontos:
* Sistema de Autenticação Completo;
* Gerenciamento de Usuários;
* Segurança Integrada;
* Fácil Integração.
\ No newline at end of file
Clone repository
  • Banco de Dados
  • Codigo
  • Configuracao
  • Design
    • Mockups
  • Escopo e Cronograma
  • Infraestrutura
  • Processo
  • arquitetura
  • Home