Ir para o conteúdo principal

Vingadores - Diminuir o acoplamento entre as apis de serviço e solicitação (Alpha)

OBJETIVO

Identificar as possíveis melhorias para diminuir o acoplamento entre as apis de serviço e solicitação do Alpha.

JUSTIFICATIVA

Após a refatoração do Alpha, espera-se que as apis trabalhem de forma autônoma, porém a api de solicitação depende de alguns dados da api de serviços para realizar alguns cálculos e listagens. Caso a api de serviços fique fora, a api de solicitação não consegue efetuar esses cálculos. Este estudo visa encontrar uma forma de minimizar esses impactos.

RESULTADOS DA PESQUISA

- CENÁRIO ATUAL

Após a refatoração, o alphaApi que era uma junção do alphasolicitacoesapi e do cartadeServicosApi foi desmembrado, porém algumas funcionalidades necessitam de integração entre essas duas apis. As funcionalidades são apresentadas abaixo:

- LOCAIS AFETADOS

  • SOLICITACAOSERVICE -> CALCULAR SITUACAO DO ATENDIMENTO (UTILIZADO NO ALPHA E NO PORTAL DO SERVIDOR/CIDADÃO)

Neste método é feita uma consulta a API de serviços para obter a forma de atendimento para então ser feito o cálculo do prazo final de atendimento.

Solução 

Para este caso, é possível criar um campo que guarde a data final do prazo de atendimento. Este campo seria preenchido na criação da solicitação e só seria feita a busca na API de serviços uma vez. Com esta solução também haveria melhoria na performance, pois essa consulta é utilizada na listagem de solicitações do portal do servidor, então para cada solicitação uma busca na API é feita.

  • SOLICITACAOSERVICE -> OBTER SOLICITAÇÕES POR CPF (NO PORTAL DO SERVIDOR/CIDADÃO)

Este método utiliza a rota "ObterServicoPorId" que traz os detalhes do serviço da solicitação. Esta busca é feita para calcular a situação do atendimento.

Solução

Com a solução anterior é possível eliminar esta busca, visto que a data final estaria gravada na api de solicitações

  • SOLICITACAODOSERVIDORREPOSITORY -> OBTER SOLICITAÇÕES POR UNIDADE ORÇAMENTARIA (UTILIZADO NO ALPHA)

Neste método é feita uma consulta a API para obter quais são os serviços de RH

Solução

Para este caso, não foi encontrado solução, pois é necessário buscar todos os serviços que são de RH

 

  • SOLICITACAODOSERVIDORREPOSITORY -> OBTER SOLICITAÇÕES POR DEPARTAMENTO (UTILIZADO NO ALPHA)

Neste método é feita uma consulta a API para obter quais são os serviços do servidor de um determinado departamento.

Solução

Para este caso, não foi encontrado solução, pois é necessário buscar todos os serviços que são de departamento

 

  • SOLICITACAODOCIDADAOREPOSITORY -> OBTER SOLICITAÇÕES POR DEPARTAMENTO (UTILIZADO NO ALPHA)

Neste método é feita uma consulta a API para obter quais são os serviços do cidadão de um determinado departamento.

Solução

Para este caso, não foi encontrado solução, pois é necessário buscar todos os serviços que são de departamento

 

  • SOLICITACAOSERVICE -> OBTER PRAZO PARA SISTEMA EXTERNO (UTILIZADO NO PORTAL DO SERVIDOR)

Neste método é feita uma consulta a API para trazer os detalhes do serviço de solicitações externas ao GCS. Esta consulta também serve para calcular o prazo de atendimento.

Solução

Para este caso, poderia não mostrar o prazo de atendimento ou gravar as solicitações de outros sistemas na base do alpha.

 

- HISTÓRIAS PREVISTAS

Título Pontos da História
(Debito Técnico) Gravar a informação da data final na solicitação de serviço 5
(Debito Técnico) Calcular a data final do prazo para a realização do serviço 5
Total 10 pontos

ENVOLVIDOS:

Gustavo Felix Gomes (DEV Team)

Rafael Passos dos Santos (DEV Team)

Emanuel Rufino Alcantara de Lima (Dev Team)

Lucas de Souza e Sousa (Estagiário Dev Team)

Euriane Nogueira Frota (Product Owner)

Moisés Santos Rodrigues (Scrum Master)

Lucas Tavares Viana de Souza (Estagiário Scrum Master)

GLOSSÁRIO:

UX, User Experience, Experiência do Usuário.

CONCLUSÃO

As soluções apresentadas diminuem o acoplamento entre as apis e também visa deixar os portais do servidor e do cidadão online. No caso do alpha, as funcionalidades apresentadas dependem das informações dos serviços, por isso, não seria possível desacoplar.

REFERÊNCIAS

- https://developers.google.com/web/fundamentals/performance/audit

- https://developers.google.com/web/tools/lighthouse?hl=pt-br 

Elaborado em 03 de novembro de 2021.
-