Refatoração e melhorias no código da assistente virtual · Issue #9 · rafaballerini/AssistentePessoal · GitHub
Skip to content

Refatoração e melhorias no código da assistente virtual #9

Open

Description

@tobiasprandini

O código possui várias funcionalidades, mas precisa de refatoração para melhorar a organização, segurança e performance. Alguns pontos precisam de atenção para que o código seja mais modular, reutilizável e eficiente.

Activity

  1. tobiasprandini commented on Feb 11, 2025

    @tobiasprandini
    Author

    Chave de API exposta: A chave da API de filmes e clima está exposta diretamente no código. Para garantir a segurança, as chaves de API devem ser armazenadas em variáveis de ambiente ou em arquivos de configuração externos.

    Solução proposta: Utilizar o módulo os para ler as variáveis de ambiente e guardar as chaves de API de forma segura.

    Importações duplicadas: Há importações duplicadas de bibliotecas, como urllib.request e requests, que podem ser removidas para melhorar a legibilidade do código.

    Solução proposta: Remover as importações duplicadas e manter apenas uma por biblioteca.

    Código não modularizado: Algumas funções estão realizando várias tarefas e poderiam ser melhor divididas em funções menores para facilitar a manutenção e o entendimento.

    Solução proposta: Refatorar as funções de executa_comandos() e monitora_audio() para que cada função tenha uma responsabilidade única.

    Manipulação de erros e exceções: O código falha silenciosamente em muitos casos, como no erro de sr.UnknownValueError ou sr.RequestError. Seria interessante fornecer mais feedback ao usuário quando algo não for reconhecido ou quando ocorrer um erro na API.

    Solução proposta: Adicionar mensagens de erro claras para o usuário e melhorar a forma como os erros são tratados.

    Hardcoded paths: O código faz chamadas específicas de sistema, como abrir programas utilizando caminhos absolutos (exemplo: os.startfile("<caminho para google chrome na sua máquina>")). Isso torna o código difícil de ser reutilizado em outras máquinas.

    Solução proposta: Definir esses caminhos como variáveis ou passar como parâmetros para as funções, tornando o código mais flexível.

    Funcionalidade de tradução: O código realiza traduções, mas poderia ser mais flexível ao permitir traduções em vários idiomas, não apenas do português para inglês e vice-versa.

    Solução proposta: Adicionar suporte para tradução entre múltiplos idiomas, recebendo o idioma de origem e o idioma de destino como parâmetros.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions