Ir para o conteúdo principal

[ETP] Impactos da descontinuação de determinados dados no SAURON

ESTUDO TÉCNICO PRELIMINAR - ETP

Autores:
José Lucas da Silva Costa,
João Pedro Rocha Brito,
Jônatas Neves Legal

1 - INTRODUÇÃO

A SETIC fornece vários serviços e cada um com sua responsabilidade, foi identificado que a API do SAURON será descontinuada. Atualmente a API fornece mais dados do que deveria. Desta maneira será necessário a averiguação dos sistemas sob responsabilidade do time TITÃS para saber se será necessário uma intervenção técnica.

 

2 - O QUE É NECESSÁRIO PARA ATENDER A NECESSIDADE

O levantamento de impactos de tal mudança é essencial, no SID este trabalho de isolar dados que não seja de responsabilidade do demandante já foi realizado, pois a própria equipe identificou de forma antecipada que não era necessário utilizar todos os dados fornecidos pela rota do SAURON, vejamos:

using Microsoft.AspNetCore.Http;
using SID.Extensions;
using SID.Interfaces;
using System.Security.Claims;

namespace SID.Services
{
    public class UserService : IUserService
    {
        private readonly ClaimsPrincipal user;

        public UserService(IHttpContextAccessor httpContextAccessor)
        {
            this.user = httpContextAccessor.HttpContext.User;
        }

        public int ObterQuantidadePerfis() => user.BuscarPerfis().Count;

        public string ObterCpfCnpj() => user.CpfCnpjSauron();

        public bool VerificarSePossuiPerfilChefeImediato() => user.PossuiPerfilChefeImediato();

        public bool VerificarSePossuiPerfilTitularDaPasta() => user.PossuiPerfilTitularDaPasta();
    }
}

A utilização do SAURON em sua maneira tradicional, viola um dos princípios do design orientado a objetos, que preza pela responsabilidade única em suas funcionalidades, em resumo o SAURON não pode entregar informações ao solicitante que não seja da sua área de responsabilidade.

3 - COMPLEXIDADE DE CADA FUNCIONALIDADE

A API a ser migrada do E-estado não possui o cenário de testes, principalmente o de carga que pode medir o desempenho da mesma, desta forma se faz necessário também os testes de API funcionais, que podem ajudar neste cenário onde está ocorrendo problemas de desempenho, principalmente se o mesmo problema vim na API nova que será migrada do E-estado. 

Testes de API funcionais são equivalentes a testes de unidade para software: uma maneira de garantir que a API retorne a saída desejada para uma determinada entrada, situação esta que ainda não possui nos projetos que o TITÃS mantém. Esses testes podem ser executados em todos os ambientes, desde o computador pessoal de um desenvolvedor até ambientes de teste até o sistema de produção final.

É recomendável executá-los para verificar se a implantação não interrompe a funcionalidade. Quando a implantação funciona, os testes devem retornar os mesmos resultados em todos os lugares. Já os testes de API de carga, por outro lado, normalmente são executados em produção ou em um sistema equivalente. Isso ocorre porque as restrições não funcionais, como confiabilidade e capacidade de resposta, parecem diferentes sob várias condições do mundo real. O teste de API funciona de maneira semelhante ao teste de site, embora os testes de site possam incluir o comportamento do navegador do lado do cliente, enquanto os testes de API enviam apenas solicitações de rede.

 

4 - POSSÍVEIS PROBLEMAS

Quando uma API falha ou possui problemas de desempenho, essa falha reflete na SETIC. Os usuários finais e clientes provavelmente não reconhecerão que um terceiro pode ser o culpado. E dependendo da importância dessa API para um processo de transação, essa falha pode afetar seus resultados imediatamente. Encontrar problemas de desempenho apenas algumas semanas antes da data de lançamento de um sistema em produção de uma API de aplicativo, é uma ocorrência comum. Um tempo de alta resolução é preciso até frações de milissegundos. Essa precisão o torna ideal para produzir medições precisas de tempo. Cada medição medida na Performance API é um tempo de alta resolução. A API de alto desempenho faz parte da API de tempo de alta resolução. À medida que o aplicativo aumenta, ele pode enfrentar problemas de desempenho. Portanto, é melhor ter testes de carga/desempenho desde o início. A maioria das empresas de desenvolvimento de software tem equipes de teste dedicadas que realizariam testes de integração para garantir que não haja gargalos.

 

5 - VALOR AGREGADO

 

 

6 - CONCLUSÃO DO ESTUDO

O presente ESTUDO TÉCNICO PRELIMINAR, elaborado pelos integrantes TÉCNICOS do time TITÃS, considerando a análise dos desafios técnicos envolvidos e citados, conclui PELA ABORDAGEM DOS IMPACTOS DA DESCONTINUAÇÃO DA API DO E-ESTADO, uma vez que foram considerados a análise técnica dos serviços envolvidos, principalmente potenciais problemas que afetem a disponibilidade e desempenho do serviço. Em complemento, os contratempos identificados são administráveis, pelo que RECOMENDAMOS A REVISÃO E SUBSTITUIÇÃO DA ANTIGA API PELA NOVA, uma vez que, os projetos podem parar de funcionar.