Python Brasil 2025

Primeiros passos com Padrões de Projeto (com TDD)
23/10/2025 , Impacta - Sala 204

Já sabe refatorar um código, mas ainda não entrou no mundo dos Padrões de Projeto? Essa é sua oportunidade de entender o motivo de existirem, e usá-los para melhorar um código existente.


Se você se identifica com a música dos Tripylistas que diz "já sei refatorar, ja sei tipar meu código, agora só me resta aplicar padrões de projeto", esse tutorial é pra você!

Entender orientação a objetos e técnicas de refatoração é essencial para deixar seu código Python bem estruturado, e você chegará muito longe com esses conhecimentos. Mas pode chegar um momento na vida de uma aplicação em que ela tem tantas linhas de código, contribuidores e responsabilidades, que é necessário dar o próximo passo na organização do projeto.

Padrões de Projeto (Design Patterns) surgem como uma alternativa robusta a esse cenário. São estruturas de organização de código (geralmente orientado a objetos) focadas em resolver algum problema organizacional, que já foram validadas e estão documentadas.

Nesse tutorial vamos entender um pouco melhor sobre o conceito geral de Padrões de Projeto, e usar alguns desses padrões para melhorar códigos Python existentes através de uma refatoração guiada a testes (TDD).


Quais conhecimentos prévios são necessários para que seja possível acompanhar bem a sua atividade?

Necessário: Conhecimento de orientação a objetos com Python; conhecimento de modularização de código python (separar funções e classes em arquivos diferentes); experiência básica com refatoração de código (extrair lógica para outras funções/métodos, etc)

Ideal: conhecimento básico de testes com Pytest

O que as pessoas que participarem podem esperar aprender na sua atividade?

Vamos ter um momento mais conceitual no início, sobre a ideia geral de padrões de projeto, e depois vamos partir para o código. Usarei 3 exemplos distintos, no qual teremos uma aplicação construída de forma "ingênua" e então faremos a aplicação de um padrão de projeto adequado.

Escolha uma ou mais áreas em que essa proposta se encaixa

Testes, Arquitetura de software, Outros