Novo post no blog 🐍

Você provavelmente já escreveu o mesmo try/finally dezenas de vezes para fechar conexão, liberar lock, limpar recurso. Funciona. Mas quando a lógica de encerramento muda, você caça essa duplicação pelo projeto inteiro.

O artigo mostra como criar context managers próprios — com __enter__/__exit__ e com @contextmanager — e três padrões que resolvem isso em produção.

🔗 https://www.riverfount.dev.br/posts/context_manager/

#Python #BaoPráticas #ContextManagers

Você provavelmente não precisa desse try/finally

Existe um padrão que aparece em quase todo projeto Python com mais de algumas semanas de vida. Ele tem variações, mas o esqueleto é sempre o mesmo: 1 2 3 4 5 6 conn = get_db_connection() try: resultado = conn.execute(query) return resultado finally: conn.close() Funciona. Fecha a conexão mesmo se der exceção. Ninguém vai questionar em code review. O problema é que esse bloco vai se repetir em todo lugar que precisar de uma conexão — e quando a lógica de encerramento mudar (adicionar log, métricas, rollback), você vai caçar essa duplicação pelo projeto inteiro.

Blog do Riverfount

Context Managers: Python's 'with' is GENIUS!

Python's context managers vs PHP's try-finally - which handles resources better? INSANE difference!

#php #python #phpvspython #contextmanagers #withstatement #tryfinally #resourcemanagement #filehandling #viralcoding #pythonmagic #mindblown #programmingpatterns

https://www.youtube.com/watch?v=ojArYRcxXqg

Context Managers: Pythons with is GENIUS! #tryfinally

YouTube