Skip to content

Latest commit

 

History

History
32 lines (23 loc) · 1.62 KB

ARCHITECTURE.md

File metadata and controls

32 lines (23 loc) · 1.62 KB

Arquitetura

Objetivo

Esse documento tem por objetivo principal organizar o processo de desenvolvimento do software.

Regras iniciais, limite e Análise

Pontos a serem levados em consideração antes de introduzir uma nova feature:

  • Esse projeto deve ter cobertura mínima de testes de no mínimo 70%.
  • Camadas globais devem ter um lugar específico na aplicação, por tanto, devem estar na pasta Shared.
  • Cada feature deverá ter sua própria pasta onde conterá todas as camadas necessárias para a execução dos casos de uso da feature.
  • Todos os designs patterns usados no projeto devem estar listados na sessão “Design Patterns” desse documento, caso contrário será considerado implementação errônea.
  • Packages e plugins novos só poderão ser usados nos projetos após avaliação e aprovação de toda equipe responsável pelo projeto.
  • Atualizações no Modelo de domínio só poderão ser aceitas se primeiro for adicionada nesse documento e aprovado por todos os envolvidos no projeto.
  • Não é permitido ter uma classe concreta como dependência de uma camada. Só será aceita coesão com classes abstratas ou interfaces. Com exceção da Store.
  • Cada camada deve ter apenas uma responsabilidade.

Design Patterns

  • Repository Pattern: Para acesso a API externa.
  • Service Pattern: Para isolar trechos de códigos com outras responsabilidades.
  • Dependency Injection: Resolver dependências das classes.
  • Result: Trabalhar com retorno Múltiplo.

Package externos

  • intl: Formatação de datas
  • dio: Cliente HTTP.
  • result: Retorno múltiplo no formato Failure e Success.
  • Mocktail: Para testes de unidade.