Este projeto foi criado para ilustrar o uso de macros desenvolvidas em VBA para Excel que podem ser utilizadas para automatizar a coleta e visualização de dados de um seleto grupo de estoques de energia verde. Isso foi usado para mostrar a capacidade de usar macros e como elas poderiam ser automatizadas usando interfaces gráficas, como botões, para permitir o uso repetível da tarefa. Para este projeto foram utilizados dados de ações de 12 ações coletadas em 2017 e 2018. Os dados utilizados incluíram o código do ticker, valores de abertura e fechamento de ações e volume diário de negociação para cada dia. A partir disso, poderíamos determinar o primeiro e o último preço das ações e o volume geral de negociação de cada ação analisada.
Outro objetivo deste projeto era ver como melhorar a eficiência do código usando refatoração para otimizar o poder computacional necessário para completar as macros. Para isso, usamos nossa versão inicial do código, que era funcional, mas exigia que o programa completasse uma iteração de todo o conjunto de dados para cada cotação da bolsa que pretendíamos analisar. O objetivo era desenvolver uma versão refatorada do código original que exigisse que o programa concluísse apenas a iteração do conjunto de dados e obtivesse os mesmos dados da primeira versão.
Para começar, desenvolvemos um código funcional que permitiu a recolha do volume total anual de stocks e o desempenho ano após ano de cada stock que pretendíamos analisar. Conforme visto no código fornecido abaixo, os dados foram coletados para cada ação completando uma iteração do conjunto de dados e inserindo os dados na planilha do Excel antes de passar para a próxima ação.
Embutido no código havia um cronômetro que exibia o tempo que o programa levava para ser executado e mostrava os resultados. Usando isso, podemos comparar o tempo necessário para completar o código inicial para coletar os dados dos conjuntos de dados de cada ano. Isso nos forneceu um tempo de execução do código para cada ano, conforme visto nas imagens abaixo. Isso mostra que o código inicial levou 0,6289062 segundos para completar o conjunto de dados de 2017 e 0,6171875 para completar o conjunto de dados de 2018.
Através da refatoração do código de trabalho original, um uso mais eficiente da computação pode ser alcançado, reduzindo o número total de iterações do conjunto de dados, o que resulta em um aumento na velocidade de execução da tarefa. Para refatorar esse código, foi necessário adicionar dois componentes à macro que estava sendo desenvolvida. O primeiro era um índice para cada ticker que seria iterado para cada linha de dados nos conjuntos de dados analisados. Dessa forma, para cada linha de dados do conjunto de dados, o programa identificaria qual ticker estava presente e armazenaria os dados relevantes relacionados ao valor do índice. A segunda foi uma coleção de matrizes de dados para armazenar os vários pontos de dados para cada cotação da bolsa. Como cada valor salvo no array pode ser recuperado com base na ordem em que foram coletados, foi possível vincular esses dados ao índice de ticker utilizado. O uso dessas duas ferramentas permitiu a refatoração do código conforme visto no exemplo abaixo.
Utilizando o mesmo código utilizado para determinar o tempo de execução do código inicial foi possível perceber se houve alguma melhoria no tempo de execução observado no código refatorado para a análise. Conforme pode ser visto nas imagens abaixo, o tempo necessário para concluir a análise dos dados de 2017 e 2018 foi computado usando o novo código e este foi usado para comparar com o código inicial usado. A partir disso, pudemos ver que foram necessários 0,5273438 segundos para completar o conjunto de dados de 2017 e 0,516825 segundos para completar o conjunto de dados de 2018.
Das informações coletadas com base no tempo para conclusão da execução do código inicial e refatorado houve uma redução de 0,1015624 segundos para o conjunto de dados de 2017 e de 0,1103625 segundos para o conjunto de dados de 2018.
O processo de refatoração de código apresenta algumas vantagens e desvantagens para sua utilização. Primeiro vamos ver algumas das vantagens
Algumas das desvantagens do uso da refatoração de código.
No exemplo que mostramos aqui houve alguns prós e contras na refatoração que foi concluída para melhorar a eficiência do código.
Alguns dos pensamentos positivos resultantes da mudança do código são os seguintes:
Reduziu o tempo usado para concluir a análise, reduzindo o número de iterações concluídas para coletar os dados.
Resultou em um código mais robusto que pode ser facilmente expandido para conjuntos de dados maiores e mais critérios de pesquisa
Matrizes utilizadas para armazenar dados que podem ser usados para outros cálculos ou análises se uma análise mais aprofundada dos dados for necessária
Alguns dos fatores negativos para o uso de refatoração neste código incluem o seguinte
https://www.c-sharpcorner.com/article/pros-and-cons-of-code-refactoring/" ↩ ↩ 2