marcusmartinss/Trabalho-de-APC

Refatoração: Continuar a modularização do código para melhorar manutenção e reuso

Open

#2 opened on Mar 7, 2025

 (0 comments) (0 reactions) (1 assignee)C (0 forks)auto 404
enhancementgood first issue

Repository metrics

Stars
 (0 stars)
PR merge metrics
 (PR metrics pending)

Description

Descrição do problema

Atualmente, o código apresenta funções extensas e repetição de lógica em diversas partes. Algumas funções realizam múltiplas tarefas ao mesmo tempo, tornando a manutenção e depuração mais difíceis. A modularização pode ajudar a melhorar a legibilidade, reutilização de código e facilitar futuras implementações.


Objetivo da refatoração

  • Separar responsabilidades em funções menores e mais específicas.
  • Reduzir a duplicação de código, especialmente em verificações e entrada de dados.
  • Criar módulos auxiliares para operações comuns, como manipulação de arquivos, validação de entradas.

Sugestões de modularização

1. Criar um módulo de entrada e validação de dados

Atualmente, a verificação de formatos de CPF, número de voo e reserva, além da entrada de dados do usuário, é feita diretamente nas funções principais. Um módulo específico para isso pode reduzir a repetição de código.

2. Criar um módulo para manipulação de arquivos

A leitura e escrita em arquivos binários são repetitivas e poderiam ser abstraídas em funções utilitárias.

3. Modularizar a lógica de cadastro e consulta de voos e reservas

Atualmente, cadastrar_voo() e cadastrar_reserva() possuem muitas responsabilidades. Separar entrada de dados, validação e armazenamento em funções menores melhora a organização.


Tarefas

  • Criar módulo validação de inputs para lidar com entrada e validação de dados.
  • Criar módulo manipulação de arquivos para abrir arquivos de forma segura e centralizada.
  • Refatorar cadastrar_voo(), cadastrar_reserva() e outras funções para reduzir responsabilidades.
  • Testar a refatoração garantindo que a funcionalidade permanece funcionando.

Impacto esperado

  • Maior organização do código.
  • Melhor reutilização de funções.
  • Facilita futuras manutenções e testes.

Contributor guide