Pular para o conteúdo
Skillpedia
Código em geral48 mil · #3935

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

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/python-patterns/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/python-patterns/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
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-patterns

Ou 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.md
Conteú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:

  1. É apenas API ou full-stack?
  2. Precisa de interface administrativa?
  3. A equipe está familiarizada com assíncrono?
  4. 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.

repo: sickn33/agentic-awesome-skills

Popularidade

Estrelas no GitHub
48 mil
Posição no ranking
#3935
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas