11 pontos por darjeeling 2025-06-06 | Ainda não há comentários. | Compartilhar no WhatsApp

Conteúdo da apresentação da PyCon US 2025.

Guia de transição do Jupyter Notebook para um sistema escalável

O Jupyter Notebook é uma ferramenta muito útil para análises interativas, como exploração de dados, visualização e ensino. No entanto, quando chega o momento de implantar código em ambiente de produção e a reutilização, a automação e a robustez passam a ser importantes, as limitações do notebook ficam evidentes. Este texto apresenta o processo e os principais aprendizados para transformar código escrito em Jupyter Notebook em um sistema escalável, mais fácil de manter e reproduzir.

Vantagens e desvantagens dos notebooks

  • Vantagens: como é possível ver código e texto juntos e verificar os resultados imediatamente, ele é excelente para análise exploratória de dados e ensino. [00:03:18]
  • Desvantagens: o estado das variáveis pode mudar conforme a ordem de execução das células, o controle de versão é difícil, e a automação e a reutilização do código são complicadas, o que se torna um obstáculo à escalabilidade. [00:04:24]

Quando fazer a transição para scripts?

  • Quando for necessário implantar o código em ambiente de produção
  • Quando outras pessoas precisarem reutilizar o código
  • Quando for necessário executar o código automaticamente
  • Quando a robustez do código for importante
  • Quando o notebook tiver ficado complexo demais [00:05:32]

Etapas e ferramentas principais para a transição

1. Extração e conversão de código

  • NBConvert & Jupytext: permitem extrair facilmente o código do notebook para um script Python. O Jupytext, em especial, também oferece sincronização entre notebook e script, o que o torna muito útil. [00:10:44]

2. Processo de refatoração

  • Separar o trabalho por unidades funcionais: identifique cada etapa do notebook, crie funções adequadas para cada etapa e mova o código para essas funções. [00:12:52]
  • Escrever testes: crie testes unitários ou de integração para garantir a correção do código. Isso é especialmente importante para evitar erros que podem surgir durante o processo de copiar e colar. [00:13:08]
  • Gerenciamento de requisitos e dependências: deixe claros os módulos e suas dependências para que o código possa ser executado facilmente em outros ambientes. [00:13:15]
  • Adoção de CI/CD: construa um pipeline de CI/CD (integração contínua/entrega contínua) para automatizar o processo de implantação. [00:13:15]

Dicas adicionais para melhorar a qualidade do código

  • Formatação consistente do código: use um formatador de código para manter a consistência.
  • Documentação: torne habitual documentar de forma clara o objetivo e o modo de uso do código.
  • Separação de configurações: gerencie informações de configuração e ajustes em arquivos separados. [00:21:11]

Competências centrais e mudança de mentalidade

  • Modularização: é importante ter a capacidade de decompor o código em funcionalidades modulares reutilizáveis.
  • Automação: aumente a eficiência automatizando o workflow.
  • Refatoração orientada a testes: melhore o código mantendo a estabilidade das funcionalidades por meio de testes.

Na fase de exploração, é importante aproveitar ativamente a flexibilidade do Jupyter Notebook e, para código de produção, adotar a mentalidade de convertê-lo em scripts automatizados, robustos e reproduzíveis. [00:22:16]

Ainda não há comentários.

Ainda não há comentários.