Nem sempre o melhor código é possível ser escrito. Escrever código que funciona bem — rápido, limpo e fácil de manter — dentro do prazo de um projeto, normalmente não é uma realidade.
Neste artigo vou mostrar, na prática, como utilizei o IBM Bob para analisar um script Python intencionalmente ineficiente e transformá-lo em uma versão muito mais performática, utilizando um caso simples, mas extremamente comum: conversão de arquivos CSV para JSON.
O Cenário
O objetivo do projeto era relativamente simples:
- Ler um arquivo CSV contendo informações de pessoas.
- Normalizar os dados.
- Gerar um arquivo JSON de saída.
A lógica de negócio é bastante simples. O diferencial está na implementação.
Para este experimento foram criadas duas versões:
- main-low.py – implementação propositalmente ineficiente.
- main-high.py – versão otimizada com auxílio do IBM Bob.
Todo o código-fonte, exemplos e arquivos utilizados neste artigo estão disponíveis no GitHub: https://github.com/ebasso/ibm-bob-labs/tree/main/blog-posts/python-csv2json-optimization-20260708
Resultados Obtidos
Ambos os scripts foram executados no mesmo ambiente e utilizando exatamente o mesmo conjunto de dados.
Na tabela a seguir segue o comparativo antes e depois.
| Aspecto | Versão Original | Versão Otimizada |
|---|---|---|
| Tempo de execução | 41,8 ms | 0,93 ms |
| Normalização | Múltiplos laços | Operações nativas |
| Leitura CSV | Processamento intermediário | Leitura direta |
| Serialização JSON | Operações redundantes | Processamento único |
| Escrita de arquivo | Caracteres individuais | Escrita otimizada |
| Pausas artificiais | Sim | Não |
| Tamanho do código | ~110 linhas | ~50 linhas |
O Prompt para o IBM Bob
Com o script em mãos, basta colar o código no IBM Bob e usar o seguinte prompt:
Você é um engenheiro Python sênior especialista em performance.
Analise o script abaixo (main-low.py) e gere uma versão otimizada chamada main-high.py.
Requisitos para a versão otimizada:
1) Manter exatamente a mesma interface de linha de comando: python3 main-high.py entrada.csv saida.json
2) Manter o mesmo formato de saída JSON (array de objetos com chaves e valores em letras minúsculas, sem espaços extras).
3) colocar o tempo de inicio e fim e o tempo de execuçã no arquivo main-high.py.
4) criar um prompt para que eu faça o rebuild dessa primeira pasta mas com alta performance.
Durante a análise, o Bob conseguiu:
- Identificar gargalos de performance.
- Detectar concatenações ineficientes de strings.
- Encontrar operações desnecessárias de serialização JSON.
- Simplificar a leitura e escrita de arquivos.
- Aplicar estruturas mais idiomáticas da linguagem Python.
- Tornar o código mais legível e mais fácil de manter.
O interessante é que o Bob não apenas gerou uma nova versão do programa, mas também justificou tecnicamente cada alteração realizada.
Se o seu custo de Cloud já está ultrapassando US$ 10.000 ou mais de US$ 100.000 por mês, vale a pena experimentar esse tipo de análise assistida pelo IBM Bob.
Revisar scripts legados, aplicações com problemas de performance e identificar oportunidades de modernização para arquiteturas serverless pode revelar gargalos e desperdícios que passam despercebidos no dia a dia, permitindo reduzir consumo de CPU, memória e tempo de execução, com impacto direto nos custos operacionais da infraestrutura.


