python-patterns
Faz seu agente aprender princípios de desenvolvimento Python. Ele ajuda a escolher frameworks, usar padrões assíncronos e organizar projetos de forma inteligente.
O que ela faz
Este guia ajuda você a tomar decisões importantes sobre como construir programas em Python. Ele ensina os princípios por trás da escolha de ferramentas e da organização do seu código, para que você aprenda a pensar sobre o desenvolvimento em vez de apenas copiar exemplos.
Quando usar
- ✓Ao escolher qual 'ferramenta' (framework) usar para seu projeto.
- ✓Ao decidir se seu programa precisa ser rápido em muitas tarefas ao mesmo tempo (assíncrono).
- ✓Ao organizar os arquivos e pastas do seu projeto Python.
Exemplo do que pedir para a IA
“Como devo organizar meu projeto Python para uma API?”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
Este guia apresenta princípios e perguntas para guiar suas decisões. Ele não fornece código pronto, mas sim um raciocínio para você aplicar.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add sickn33/agentic-awesome-skills --skill python-patternsOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/python-patterns/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Padrões Python
Princípios de desenvolvimento e tomada de decisão em Python para 2025. Aprenda a PENSAR, não a memorizar padrões.
Quando Usar
Use esta habilidade ao tomar decisões de arquitetura em Python, escolher frameworks, projetar padrões assíncronos ou estruturar projetos Python.
⚠️ Como Usar Esta Habilidade
Esta habilidade ensina princípios de tomada de decisão, não código fixo para copiar.
- PERGUNTE ao usuário sobre a preferência de framework quando não estiver claro
- Escolha assíncrono vs síncrono com base no CONTEXTO
- Não use o mesmo framework sempre como padrão
1. Seleção de Framework (2025)
Árvore de Decisão
What are you building?
│
├── API-first / Microservices
│ └── FastAPI (async, modern, fast)
│
├── Full-stack web / CMS / Admin
│ └── Django (batteries-included)
│
├── Simple / Script / Learning
│ └── Flask (minimal, flexible)
│
├── AI/ML API serving
│ └── FastAPI (Pydantic, async, uvicorn)
│
└── Background workers
└── Celery + any framework
Princípios de Comparação
| Fator | FastAPI | Django | Flask |
|---|---|---|---|
| Melhor para | APIs, microsserviços | Full-stack, CMS | Simples, aprendizado |
| Assíncrono | Nativo | Django 5.0+ | Via extensões |
| Admin | Manual | Integrado | Via extensões |
| ORM | Escolha o seu | Django ORM | Escolha o seu |
| Curva de aprendizado | Baixa | Média | Baixa |
Perguntas de Seleção para Fazer:
- É apenas API ou full-stack?
- Precisa de interface administrativa?
- A equipe está familiarizada com assíncrono?
- Infraestrutura existente?
2. Decisão Assíncrono vs Síncrono
Quando Usar Assíncrono
async def is better when:
├── I/O-bound operations (database, HTTP, file)
├── Many concurrent connections
├── Real-time features
├── Microservices communication
└── FastAPI/Starlette/Django ASGI
def (sync) is better when:
├── CPU-bound operations
├── Simple scripts
├── Legacy codebase
├── Team unfamiliar with async
└── Blocking libraries (no async version)
A Regra de Ouro
I/O-bound → async (waiting for external)
CPU-bound → sync + multiprocessing (computing)
Don't:
├── Mix sync and async carelessly
├── Use sync libraries in async code
└── Force async for CPU work
Seleção de Biblioteca Assíncrona
| Necessidade | Biblioteca Assíncrona |
|---|---|
| Cliente HTTP | httpx |
| PostgreSQL | asyncpg |
| Redis | aioredis / redis-py async |
| E/S de Arquivo | aiofiles |
| ORM de Banco de Dados | SQLAlchemy 2.0 async, Tortoise |
3. Estratégia de Type Hints
Quando Usar Tipos
Always type:
├── Function parameters
├── Return types
├── Class attributes
├── Public APIs
Can skip:
├── Local variables (let inference work)
├── One-off scripts
├── Tests (usually)
Padrões Comuns de Tipos
# These are patterns, understand them:
# Optional → might be None
from typing import Optional
def find_user(id: int) -> Optional[User]: ...
# Union → one of multiple types
def process(data: str | dict) -> None: ...
# Generic collections
def get_items() -> list[Item]: ...
def get_mapping() -> dict[str, int]: ...
# Callable
from typing import Callable
def apply(fn: Callable[[int], str]) -> str: ...
Pydantic para Validação
When to use Pydantic:
├── API request/response models
├── Configuration/settings
├── Data validation
├── Serialization
Benefits:
├── Runtime validation
├── Auto-generated JSON schema
├── Works with FastAPI natively
└── Clear error messages
4. Princípios de Estrutura de Projeto
Seleção de Estrutura
Small project / Script:
├── main.py
├── utils.py
└── requirements.txt
Medium API:
├── app/
│ ├── __init__.py
│ ├── main.py
│ ├── models/
│ ├── routes/
│ ├── services/
│ └── schemas/
├── tests/
└── pyproject.toml
Large application:
├── src/
│ └── myapp/
│ ├── core/
│ ├── api/
│ ├── services/
│ ├── models/
│ └── ...
├── tests/
└── pyproject.toml
Princípios de Estrutura do FastAPI
Organize by feature or layer:
By layer:
├── routes/ (API endpoints)
├── services/ (business logic)
├── models/ (database models)
├── schemas/ (Pydantic models)
└── dependencies/ (shared deps)
By feature:
├── users/
│ ├── routes.py
│ ├── service.py
│ └── schemas.py
└── products/
└── ...
5. Princípios do Django (2025)
Django Assíncrono (Django 5.0+)
Django supports async:
├── Async views
├── Async middleware
├── Async ORM (limited)
└── ASGI deployment
When to use async in Django:
├── External API calls
├── WebSocket (Channels)
├── High-concurrency views
└── Background task triggering
Melhores Práticas do Django
…
Perguntas frequentes
O que é um framework?
Um framework é como um esqueleto ou um conjunto de ferramentas pré-fabricadas que ajudam a construir um programa mais rapidamente, seguindo certas regras e estruturas.
O que significa 'assíncrono'?
Significa que um programa pode fazer várias coisas ao mesmo tempo, sem esperar que uma tarefa termine para começar a próxima. É útil para programas que precisam responder rapidamente a muitas solicitações.
O que são 'Type Hints'?
São anotações que você adiciona ao seu código para indicar o tipo de dado que uma variável ou função espera ou retorna (ex: número, texto). Isso ajuda a evitar erros e torna o código mais fácil de entender.
Detalhes
Descrição original do autor
Python development principles and decision-making. Framework selection, async patterns, type hints, project structure. Teaches thinking, not copying.
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #3935
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
00-andruia-consultant
Ajuda seu agente a iniciar ou melhorar projetos de IA. Ele analisa código, sugere ferramentas e cria planos de ação em espanhol.
sickn33/agentic-awesome-skills
007
Faz seu agente realizar auditorias de segurança e modelagem de ameaças. É útil para proteger projetos contra ataques e vulnerabilidades.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Ajuda seu agente a criar ou melhorar ferramentas de IA. Ele define como as ferramentas funcionam, escreve a documentação e valida a estrutura.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Faz seu agente criar um resumo sobre um setor específico. É útil para entender o contexto, regras, padrões de uso e riscos de um projeto, usando fontes confiáveis.
sickn33/agentic-awesome-skills
Skills parecidas
benchmark-optimization-loop
Faz seu agente melhorar a velocidade de algo de forma medida. Ele testa várias versões e escolhe a mais rápida que ainda funciona corretamente.
affaan-m/ECC
change-impact
Ajuda seu agente a analisar o impacto de mudanças no código antes de fazê-las. Ele compara o planejado com o real depois, cobrindo caminhos, dados, testes e documentação. É útil para mudanças arriscadas ou que afetam várias partes do sistema.
affaan-m/ECC
click-path-audit
Faz seu agente rastrear todos os botões e interações do usuário para achar bugs. Ele encontra problemas onde funções parecem funcionar sozinhas, mas falham juntas. Útil quando bugs persistem mesmo após depuração.
affaan-m/ECC