O que o código faz
O programa oferece uma interface de linha de comando para gerenciar registros de pessoas. Ele simula um sistema CRUD (Create, Read, Update, Delete) em uma lista de dicionários, permitindo que o usuário realize as seguintes operações:
Adicionar um novo registro de pessoa.
Visualizar todos os registros existentes.
Buscar um registro específico pelo nome.
Atualizar os dados de um registro.
Excluir um registro.
As mensagens de feedback e os erros são exibidos de forma clara para o usuário e também registrados em um arquivo de log para rastreamento.
Principais recursos utilizados
O código demonstra o uso de diversas técnicas importantes em Python:
Estruturas de Dados: Utiliza uma lista de dicionários para armazenar os registros, simulando um banco de dados em memória.
Validação de Dados: Implementa funções de validação robustas, como validar_idade e validar_string, que usam o módulo re (expressões regulares) para garantir que as entradas do usuário estejam no formato correto.
Tratamento de Erros: Usa blocos try-except para capturar e gerenciar erros de forma controlada, garantindo que o programa não pare de funcionar com entradas inválidas.
Boas Práticas de Código: Aplica o princípio DRY (Don't Repeat Yourself), centralizando a lógica de exibição de mensagens e formatação de tabelas em funções separadas, o que torna o código mais limpo e fácil de manter.
Interface de Usuário: Utiliza um menu interativo para navegação e o módulo os para limpar a tela, proporcionando uma experiência de usuário mais fluida.
Logging: O uso do módulo logging permite registrar as ações do programa (sucessos, erros e avisos), o que é essencial para depuração e auditoria em aplicações reais.
Funcionalidades no menu interativo
O menu oferece cinco opções principais:
Mostrar todos os registros: Exibe uma tabela formatada com todas as pessoas cadastradas.
Adicionar novo registro: Permite ao usuário inserir nome, idade, cidade, estado (UF) e uma informação complementar, com validação automática para cada campo.
Buscar registro: Pede um nome ao usuário e exibe as informações da pessoa em um formato de tabela, se encontrada.
Atualizar / Excluir registro: Encontra um registro pelo nome e permite ao usuário escolher entre modificar os dados ou removê-lo definitivamente do sistema.
Sair: Encerra o programa.