Pular para o conteúdo principal

Plano de Refatoração de Telas Antigas

Última atualização: 30 de setembro de 2025

Visão Geral

Alinhar a equipe sobre boas práticas de código e estabelecer um plano claro para refatoração de telas antigas, garantindo padronização, redução de dívidas técnicas e melhoria na manutenção do sistema.

1. Boas Práticas

Objetivos

  • Remover logs desnecessários
  • Estratégia para descontinuação gradual do Redux
    • Evitar novos usos
    • Isolar seletores e actions legadas
    • Introduzir serviços e hooks específicos por feature
  • Processo de identificação e remoção de código morto
  • Criação de bibliotecas reutilizáveis para funcionalidades compartilhadas entre projetos, evitando duplicidade e facilitando manutenção
    • Exemplo: Rocket, listagem de produtos, calculo de preços, calculo de impostos, etc.

2. Refatoração de Telas (Prioridades)

Definição de Prioridades

Priorizar telas com maior impacto e alto custo de manutenção.

PlataformaTelaEstratégia
WebCatálogo de produtosSem Redux; filtros direto no banco de dados
AppCatálogo de produtosSem Redux; filtros direto no banco de dados
AppClientesSem Redux; filtros direto no banco de dados
AppVendasSem Redux; filtros direto no banco de dados
RocketAgendaSem Redux; filtros direto no banco de dados

Pontos de Arquitetura

  • Estratégia para substituir Redux por acesso direto via serviços (ex.: IndexedDB/DB local) com paginação, ordenação e filtros no banco

3. Primeira Refatoração (Foco)

Objetivo Inicial

Foco: Web – Tela de Catálogo de Produtos (sem Redux; filtros direto no banco de dados).

Mapeamento de Atividades

  • Criar service de CRUD para banco local (IndexedDB)
  • Executar testes de performance do banco local para validar viabilidade
  • Definir parâmetro de feature flag para exibir a nova tela
  • Criar controller para o catálogo, separando lógica de apresentação

Funcionalidades Essenciais

FuncionalidadeDescrição
Listagem de produtosIntegração ao banco e paginação
Precificação centralizadaTaxas, promoções, impostos em uma única função
Filtro de produtosBusca e filtros diretos no banco
Ordenação de produtosClassificação dinâmica

Regras de Negócio

  • Abranger regras do TIPTABPRECOS
  • Parâmetro para definir unidade padrão do catálogo
  • Mapear e validar as regras atualmente usadas na tela legada

UI/UX

  • Novo modal de detalhes do produto (substituir o atual que gera bugs e alto acoplamento)

Critérios de Aceite

CritérioDescrição
Sem ReduxA listagem deve funcionar sem Redux
PerformancePaginação, filtros e busca executados no banco/dados
TestesController e service com testes unitários
ModalModal novo sem regressões conhecidas da versão antiga
React QueryUso de React Query para gerenciamento de estado e cache

4. Refatoração é um item de Baixa Prioridade

Estratégia de Execução

  • Refatoração com calma, priorizando qualidade
  • Planejamento para não impactar tarefas paralelas
  • Pode durar várias sprints, conforme complexidade e disponibilidade

5. Testes (Unitários e Integração)

Objetivos

  • Cobrir funcionalidades refatoradas com testes unitários
  • Testes de integração garantindo interoperabilidade com o restante do sistema
  • Testes de performance (ex.: paginação e filtros em catálogos grandes)

6. Documentação

Responsabilidades

  • Atualizar documentação técnica a cada mudança relevante
  • Registrar contratos de serviços (inputs/outputs), decisões arquiteturais e feature flags
  • Manter link entre PRs de código e PRs de documentação

Recursos Relacionados

  • Processo de Documentação: ver "Processo de Documentação" neste repositório
  • Template de geração com IA: ver "Gerar Documentação" em Tutoriais