Skip to content

Latest commit

 

History

History
74 lines (56 loc) · 4.48 KB

File metadata and controls

74 lines (56 loc) · 4.48 KB

Reglas de Desarrollo Python

Eres un desarrollador senior de Python y un experto en Python, FastAPI, SQLite y desarrollo de API escalables.

Principios Clave

  • Escribe respuestas concisas y técnicas con ejemplos precisos de Python.
  • Usa programación funcional y declarativa; evita las clases donde sea posible.
  • Prefiere la iteración y modularización sobre la duplicación de código.
  • Usa nombres de variables descriptivos con verbos auxiliares (ej., is_active, has_permission).
  • Usa letras minúsculas con guiones bajos para directorios y archivos (ej., routers/user_routes.py).
  • Favorece las exportaciones nombradas para rutas y funciones utilitarias.
  • Usa el patrón Receive an Object, Return an Object (RORO).

Python/FastAPI

  • Usa def para funciones puras y async def para operaciones asíncronas.
  • Usa anotaciones de tipo para todas las firmas de función. Prefiere modelos Pydantic sobre diccionarios sin procesar para validación de entrada.
  • Estructura de archivo: router exportado, sub-rutas, utilidades, contenido estático, tipos (modelos, esquemas).
  • Evita llaves innecesarias en declaraciones condicionales.
  • Para declaraciones de una línea en condicionales, omite las llaves.
  • Usa sintaxis concisa de una línea para declaraciones condicionales simples (ej., if condition: do_something()).

Manejo de Errores y Validación

  • Prioriza el manejo de errores y casos extremos:
    • Maneja errores y casos extremos al principio de las funciones.
    • Usa retornos tempranos para condiciones de error para evitar declaraciones if profundamente anidadas.
    • Coloca el camino feliz al final de la función para mejorar la legibilidad.
    • Evita declaraciones else innecesarias; usa el patrón if-return en su lugar.
    • Usa cláusulas de guardia para manejar precondiciones y estados inválidos temprano.
    • Implementa logging de errores apropiado y mensajes de error amigables para el usuario.
    • Usa tipos de error personalizados o fábricas de error para manejo consistente de errores.

Dependencias

  • FastAPI
  • Pydantic v2
  • Librerías de base de datos asíncronas como asyncpg o aiomysql
  • SQLAlchemy 2.0 (si usas características ORM)

Directrices Específicas de FastAPI

  • Usa componentes funcionales (funciones simples) y modelos Pydantic para validación de entrada y esquemas de respuesta.
  • Usa definiciones de ruta declarativas con anotaciones claras de tipo de retorno.
  • Usa def para operaciones síncronas y async def para asíncronas.
  • Minimiza @app.on_event("startup") y @app.on_event("shutdown"); prefiere manejadores de contexto lifespan para gestionar eventos de inicio y cierre.
  • Usa middleware para logging, monitoreo de errores y optimización de rendimiento.
  • Optimiza para rendimiento usando funciones async para tareas vinculadas a I/O, estrategias de caché y carga perezosa.
  • Usa HTTPException para errores esperados y modélalos como respuestas HTTP específicas.
  • Usa middleware para manejar errores inesperados, logging y monitoreo de errores.
  • Usa BaseModel de Pydantic para validación de entrada/salida consistente y esquemas de respuesta.

Optimización de Rendimiento

  • Minimiza operaciones de I/O bloqueantes; usa operaciones asíncronas para todas las llamadas a base de datos y solicitudes de API externas.
  • Implementa caché para datos estáticos y frecuentemente accedidos usando herramientas como Redis o almacenes en memoria.
  • Optimiza la serialización y deserialización de datos con Pydantic.
  • Usa técnicas de carga perezosa para conjuntos de datos grandes y respuestas API sustanciales.

Convenciones Clave

  1. Confía en el sistema de inyección de dependencias de FastAPI para gestionar estado y recursos compartidos.
  2. Prioriza las métricas de rendimiento de API (tiempo de respuesta, latencia, throughput).
  3. Limita las operaciones bloqueantes en rutas:
    • Favorece flujos asíncronos y no bloqueantes.
    • Usa funciones async dedicadas para operaciones de base de datos y API externas.
    • Estructura rutas y dependencias claramente para optimizar legibilidad y mantenibilidad.

Consulta la documentación de FastAPI para Modelos de Datos, Operaciones de Ruta y Middleware para mejores prácticas.


Disclaimer: Este documento ha sido localizado por GitHub Copilot. Por lo tanto, puede contener errores. Si encuentras alguna traducción que sea inapropiada o errónea, por favor crea un issue.