Skip to content

codenation-dev/squad-1-ad-csharp-itau-1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

92 Commits
 
 
 
 
 
 
 
 

Repository files navigation

ItaLog

O Italog é uma Central de Erros, responsável por centralizar os registros de erros de várias aplicações.

Em projetos modernos é cada vez mais comum o uso de arquiteturas baseadas em serviços ou microsserviços. Nestes ambientes complexos, erros podem surgir em diferentes camadas da aplicação (backend, frontend, mobile, desktop) e mesmo em serviços distintos. Desta forma, é muito importante que os desenvolvedores possam centralizar todos os registros de erros em um local, de onde podem monitorar e tomar decisões mais acertadas. Neste projeto vamos implementar um sistema para centralizar registros de erros de aplicações.

Pilares do Italog

Etapa Descrição
Monitoramento Armazenar e acompanhar, em tempo real, eventos que são gerados por todas as aplicações cadastradas
Triagem Separar os eventos recebidos pelo Monitoramento de acordo com o tipo de ambiente, severidade e prioridade de cada um deles
Diagnóstico Identificar possíveis falhas de desenvolvimento ou intermitências das aplicações conforme dados catalogados pela Triagem
Ação Agir de acordo com a necessidade identificada pela etapa de Diagnóstico, acionando os recursos disponíveis para a solução dos problemas, além de definir e atualizar o status de cada evento
Manutenção Propor resoluções para inconsistências e utilizar os dados de todas as etapas anteriores para sugerir melhorias e manutenções preventivas

Arquitetura do sistema

Decidimos separar as camadas de projeto, tendo como orientação o modelo Clean Architecture, de Bob Martin, mas usado aqui na visão de Steve Smith. Info: Microsoft Docs.

Através desta modelo arquitetural, esperamos melhorar a forma como o projeto é separado e compreendido. Tendo também vantagens como uso de injeção de dependência, fazendo a inversão do controle e viabilizando testes automatizados (unitários a princípio).

Também nos serviu de base o material apresentado no livro Asp.NET Core Architecture e-book, disponível em sítio Microsoft.

Camada de Infraestrutura

São itens desta camada, aqueles relativos à:

  • Conexão com banco de dados
  • Tipos representando o banco de dados
  • Implementações de acesso a dados (das Interfaces definidas no Core)

Camada de WebApi

Esta camada será responsável por receber as requisições dos clientes e endereçá-las.

Vamos tratar aqui:

  • Autenticação e autorização
  • Injeção de dependência

Camada de Data

  • Criando migrations

Execute dotnet ef migrations add "nome-da-migration" --project ./ItaLog/ItaLog.Data/ --startup-project ./ItaLog/ItaLog.API/ para gerar uma nova migration do banco de dados.

Atualizando o banco de dados

Execute dotnet ef database update --project ./ItaLog/ItaLog.Data/ --startup-project ./ItaLog/ItaLog.API/ atulizando o banco de banco de dados com as migrations do projeto.

Camada Domain

Esta camada é responsável por armazenar as abstrações do nosso universo. Por exemplo, o que é um log de erro será representado aqui por uma classe.

Nesta camada você vai encontrar os seguintes itens:

  • Entidades
  • Interfaces

Ambiente de desenvolvimento

Servidor de desenvolvimento

Execute dotnet watch run --project ./ItaLog/ItaLog.Api/ para iniciar o servidor. Navegue em http://localhost:5000/. O aplicativo será recarregado automaticamente se você alterar qualquer um dos arquivos de origem.

Build

Execute dotnet build ./ItaLog/ItaLog.sln para contruir os executaveis do projeto.

Camada Tests

Por fim uma camada para separar os testes será utilizada.

  • Testes unitários Execute dotnet test ./ItaLog/ItaLog.sln para iniciar os testes unitários via xUnit.

Tecnologias utilizadas

Desenvolvedores

Afonso Carvalho André Gaúna Brunna Silva Bruno Ritter Carlos Eduardo

Afonso Carvalho

André Gaúna

Brunna Silva

Bruno Ritter

Carlos Eduardo