<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Boas-Práticas on Python Brasil — Aprenda Python em Português</title>
    <link>https://python.dev.br/tags/boas-pr%C3%A1ticas/</link>
    <description>Recent content in Boas-Práticas on Python Brasil — Aprenda Python em Português</description>
    <generator>Hugo</generator>
    <language>pt-br</language>
    <lastBuildDate>Tue, 28 Apr 2026 16:49:51 -0300</lastBuildDate>
    <atom:link href="https://python.dev.br/tags/boas-pr%C3%A1ticas/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Ferramentas Essenciais para Desenvolvedores Python em 2026 | python.dev.br</title>
      <link>https://python.dev.br/ferramentas/ferramentas-essenciais-python/</link>
      <pubDate>Mon, 30 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://python.dev.br/ferramentas/ferramentas-essenciais-python/</guid>
      <description>&lt;p&gt;O ecossistema Python em 2026 é incrivelmente rico em ferramentas de desenvolvimento. Mas com tantas opções, é fácil ficar perdido: pip ou uv? Black ou Ruff? Poetry ou pipenv? Neste artigo, vamos mapear as ferramentas essenciais que todo desenvolvedor Python deveria conhecer, organizadas por categoria, com comparativos práticos para você montar seu toolkit ideal.&lt;/p&gt;&#xA;&lt;h2 id=&#34;gerenciamento-de-pacotes-e-ambientes&#34;&gt;Gerenciamento de Pacotes e Ambientes&lt;/h2&gt;&#xA;&lt;h3 id=&#34;pip--o-clássico&#34;&gt;pip — O Clássico&lt;/h3&gt;&#xA;&lt;p&gt;O &lt;a href=&#34;https://python.dev.br/glossario/pip/&#34;&gt;pip&lt;/a&gt; é o gerenciador de pacotes padrão do Python. Vem instalado junto com o Python e é a forma mais básica de instalar bibliotecas:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Python Protocols: Tipagem Estrutural Sem Herança — 2026 | python.dev.br</title>
      <link>https://python.dev.br/blog/python-protocols-tipagem-estrutural/</link>
      <pubDate>Sun, 29 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://python.dev.br/blog/python-protocols-tipagem-estrutural/</guid>
      <description>&lt;p&gt;Python sempre foi uma linguagem de &lt;strong&gt;duck typing&lt;/strong&gt;: se um objeto tem os métodos certos, ele funciona — independente da classe ou herança. Mas quando você adiciona &lt;a href=&#34;https://python.dev.br/blog/tipagem-estatica-python-mypy/&#34;&gt;type hints&lt;/a&gt; ao código, surge um problema: como tipar algo que depende de comportamento, e não de uma classe específica?&lt;/p&gt;&#xA;&lt;p&gt;A resposta veio com a PEP 544 no Python 3.8: &lt;strong&gt;Protocol&lt;/strong&gt; — uma forma de definir interfaces baseadas em estrutura, não em herança. Neste artigo, vamos explorar como Protocols funcionam, quando usá-los, e como eles transformam a qualidade do código Python.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Context Managers em Python: Dominando o with</title>
      <link>https://python.dev.br/blog/context-managers-python-with/</link>
      <pubDate>Fri, 27 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://python.dev.br/blog/context-managers-python-with/</guid>
      <description>&lt;p&gt;Esquecer de fechar um arquivo, não liberar uma conexão com o banco de dados, deixar um lock travado — esses são erros sutis que causam bugs difíceis de rastrear. Os &lt;strong&gt;context managers&lt;/strong&gt; do Python resolvem isso com elegância, garantindo que recursos sejam sempre liberados, mesmo quando ocorrem exceções.&lt;/p&gt;&#xA;&lt;h2 id=&#34;o-que-são-context-managers&#34;&gt;O Que São Context Managers&lt;/h2&gt;&#xA;&lt;p&gt;Um context manager é qualquer objeto que implementa os métodos &lt;code&gt;__enter__&lt;/code&gt; e &lt;code&gt;__exit__&lt;/code&gt;. Quando usado com a instrução &lt;code&gt;with&lt;/code&gt;, o Python garante que &lt;code&gt;__enter__&lt;/code&gt; é chamado no início do bloco e &lt;code&gt;__exit__&lt;/code&gt; é chamado ao final — sempre, mesmo se uma exceção ocorrer no meio.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Dataclasses em Python: Guia Completo com Exemplos Práticos</title>
      <link>https://python.dev.br/blog/dataclasses-python-guia-completo/</link>
      <pubDate>Fri, 27 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://python.dev.br/blog/dataclasses-python-guia-completo/</guid>
      <description>&lt;p&gt;Se você já criou classes em Python apenas para armazenar dados, sabe o quanto de código repetitivo isso envolve: &lt;code&gt;__init__&lt;/code&gt;, &lt;code&gt;__repr__&lt;/code&gt;, &lt;code&gt;__eq__&lt;/code&gt;&amp;hellip; tudo escrito manualmente. As &lt;strong&gt;dataclasses&lt;/strong&gt;, introduzidas no Python 3.7, resolvem exatamente esse problema, gerando automaticamente esses métodos a partir de simples anotações de tipo.&lt;/p&gt;&#xA;&lt;h2 id=&#34;o-que-são-dataclasses&#34;&gt;O Que São Dataclasses&lt;/h2&gt;&#xA;&lt;p&gt;Dataclasses são classes Python decoradas com &lt;code&gt;@dataclass&lt;/code&gt; que geram automaticamente métodos especiais como &lt;code&gt;__init__&lt;/code&gt;, &lt;code&gt;__repr__&lt;/code&gt;, &lt;code&gt;__eq__&lt;/code&gt; e outros. A ideia é simples: você declara os atributos com &lt;a href=&#34;https://python.dev.br/blog/tipagem-estatica-python-mypy/&#34;&gt;type hints&lt;/a&gt; e o Python cuida do resto.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ruff: Linter e Formatador Mais Rápido para Python | Python Brasil</title>
      <link>https://python.dev.br/blog/ruff-linter-formatador-python/</link>
      <pubDate>Sat, 21 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://python.dev.br/blog/ruff-linter-formatador-python/</guid>
      <description>&lt;p&gt;Se você trabalha com Python profissionalmente, já deve ter configurado uma combinação de &lt;strong&gt;flake8&lt;/strong&gt;, &lt;strong&gt;black&lt;/strong&gt;, &lt;strong&gt;isort&lt;/strong&gt; e talvez &lt;strong&gt;pylint&lt;/strong&gt; nos seus projetos. Cada ferramenta tem seu arquivo de configuração, suas dependências e seu tempo de execução. E se eu te dissesse que existe uma única ferramenta que substitui todas elas e roda &lt;strong&gt;10 a 100 vezes mais rápido&lt;/strong&gt;?&lt;/p&gt;&#xA;&lt;p&gt;Essa ferramenta é o &lt;strong&gt;Ruff&lt;/strong&gt; — um linter e formatador Python escrito em &lt;a href=&#34;https://rustlang.com.br/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34; onclick=&#34;umami.track(&#39;portfolio-site-click&#39;, { destination: &#39;rustlang.com.br&#39; })&#34;&gt;Rust&lt;/a&gt; que está revolucionando o ecossistema de qualidade de código Python. Neste artigo, vamos explorar tudo sobre o Ruff: instalação, configuração, migração e exemplos práticos.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Logging em Python — 2025 | Python Brasil</title>
      <link>https://python.dev.br/blog/logging-em-python/</link>
      <pubDate>Sun, 01 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://python.dev.br/blog/logging-em-python/</guid>
      <description>&lt;p&gt;O módulo &lt;code&gt;logging&lt;/code&gt; é uma das ferramentas mais subutilizadas por desenvolvedores Python iniciantes e intermediários. Enquanto &lt;code&gt;print()&lt;/code&gt; pode parecer suficiente durante o desenvolvimento, em produção ele é completamente inadequado. O logging profissional permite categorizar mensagens por severidade, direcionar logs para diferentes destinos, formatar saídas de maneira padronizada e desativar ou ativar mensagens sem alterar o código.&lt;/p&gt;&#xA;&lt;p&gt;Neste artigo, vamos explorar o módulo &lt;code&gt;logging&lt;/code&gt; do Python em profundidade, desde o uso básico até configurações avançadas para aplicações profissionais.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Tratamento de Erros em Python — 2025 | Python Brasil</title>
      <link>https://python.dev.br/blog/tratamento-de-erros-python/</link>
      <pubDate>Sat, 10 Jan 2026 00:00:00 +0000</pubDate>
      <guid>https://python.dev.br/blog/tratamento-de-erros-python/</guid>
      <description>&lt;p&gt;Erros fazem parte do desenvolvimento de software. A diferença entre um programa amador e um profissional está em como esses erros são tratados. Python possui um sistema robusto de exceções que permite capturar, tratar e até criar seus próprios tipos de erro, garantindo que seu programa se comporte de maneira previsível mesmo em situações inesperadas.&lt;/p&gt;&#xA;&lt;p&gt;Neste artigo, vamos explorar desde o básico do try/except até técnicas avançadas como exceções personalizadas e padrões de tratamento de erros usados em projetos profissionais.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
