|
|
| [Home](home) | [Escopo e Cronograma](escopo) | [Processo](processo) | [Design/Mockups](design_mockups) | [Configuração](configuracao) | [Arquitetura](arquitetura) | [**Código**](codigo) | [BD](Banco de 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 de Dados) | [Qualidade](qualidade) |
|
|
|
| :----------: | :---------------------------: | :------------------: | :--------------: | :--------------------------: | :------------------------: | :------------------: | :---------------: | :--------------------: |
|
|
|
|
|
|
# Código
|
|
|
|
... | ... | @@ -11,20 +11,66 @@ Aqui serão apresentadas as convenções do código desenvolvido. padrões, docu |
|
|
|
|
|
- [Ferramentas](#ferramentas-de-padronização)
|
|
|
- [Nomenclatura de Arquivos](#nomenclatura-de-arquivos)
|
|
|
- [Documentação](#documentação)
|
|
|
|
|
|
## Ferramentas de Padronização
|
|
|
|
|
|
TBD
|
|
|
### Lint
|
|
|
|
|
|
O lint é uma ferramenta de análise de código estática. Ele é realizado para sinalizar erros de programação, erros estilísticos, bugs e construções suspeitas que possam prejudicar ou causar o baixo desempenho ao código da aplicação.
|
|
|
|
|
|
Na prática, o lint é uma espécie de corretor bastante “chato” que faz uma varredura em todo o seu código. Portanto, ele pode encontrar algumas desconformidades, como:
|
|
|
|
|
|
Espaçamento incorreto;
|
|
|
Falta de “;” quando é necessário;
|
|
|
Ultrapassagem de limites de caracteres por linha;
|
|
|
Uso de aspas simples e duplas;
|
|
|
Uso de imports descontinuados;
|
|
|
Variáveis declaradas e não utilizadas.
|
|
|
E, para ser utilizado nas equipes tech, o lint se apresenta sob algumas ferramentas.
|
|
|
Neste caso, estamos utilizando TSLint feito para TypeScript e Lint para Dart/ Flutter.
|
|
|
|
|
|
### Nomenclatura de Arquivos
|
|
|
|
|
|
TBD
|
|
|
Para a nomenclatura dos arquivos, utilizamos o padrão MVVM.
|
|
|
O MVVM é capaz de segregar a lógica de negócios da interface do usuário.
|
|
|
O MVVM é útil para mover a lógica de negócios da visualização para ViewModel e Model. ViewModel é o mediador entre View e Model que carrega todos os eventos do usuário e retorna o resultado.
|
|
|
#### Frontend
|
|
|
##### Model
|
|
|
A Model representa uma única fonte de verdade que carrega os dados de busca em tempo real ou consultas relacionadas ao banco de dados.
|
|
|
|
|
|
Essa camada pode conter lógica de negócios, validação de código, etc. Essa camada interage com o ViewModel para dados locais ou em tempo real. Os dados são fornecidos em resposta a ViewModel.
|
|
|
|
|
|
##### ViewModel
|
|
|
ViewModel é o mediador entre View e Model, que aceita todos os eventos do usuário e solicita isso ao Model para dados. Uma vez que o modelo tenha dados, ele retorna ao ViewModel e, em seguida, o ViewModel notifica esses dados para o View.
|
|
|
|
|
|
### Documentação
|
|
|
ViewModel pode ser usado por várias visualizações, o que significa que um único ViewModel pode fornecer dados para mais de uma visualização.
|
|
|
|
|
|
TBD
|
|
|
##### View
|
|
|
A View é onde o usuário está interagindo com os Widgets que são mostrados na tela. Esses eventos de usuário solicitam algumas ações que navegam para o ViewModel, e o restante do ViewModel faz o trabalho. Depois que a ViewModel tiver os dados necessários, ele atualiza a View.
|
|
|
|
|
|
#### Backend
|
|
|
##### Controllers
|
|
|
O único objetivo de um controlador é receber solicitações para o aplicativo e lidar com rotas.
|
|
|
|
|
|
##### Services
|
|
|
Esta parte do bloco deve incluir apenas a lógica de negócios. Por exemplo, todas as operações e métodos CRUD para determinar como os dados podem ser criados, armazenados e atualizados.
|
|
|
|
|
|
##### Camada de Acesso a Dados
|
|
|
Esta camada cuida e fornece lógica para acessar dados armazenados em algum tipo de armazenamento persistente. Por exemplo, um ODM como o Mongoose.
|
|
|
|
|
|
##### Modules
|
|
|
O arquivo do módulo agrupa todos os nossos controladores e provedores/serviços e exporta uma classe que pode ser importada para instanciar nossa aplicação. Cada aplicativo tem pelo menos um módulo raiz. O Nest usa esse módulo raiz para criar o gráfico do aplicativo — a estrutura de dados internos que o Nest usa para resolver o módulo e as dependências.
|
|
|
|
|
|
### Código
|
|
|
|
|
|
TBD |
|
|
Aqui vai uma sugestão de configuração do seu vscode para o frontend, acesse o "help > show all comands" e selecione o "Preferences: Open User settings" `settings.json` e adicione:
|
|
|
|
|
|
```
|
|
|
"[dart]": {
|
|
|
"editor.codeActionsOnSave": {
|
|
|
"source.fixAll": true
|
|
|
},
|
|
|
"editor.defaultFormatter": "Dart-Code.dart-code",
|
|
|
"editor.formatOnSave": true,
|
|
|
},
|
|
|
``` |