Guía de Inicio: Arquitectura y Configuración del Proyecto `patchy`

Este documento explora la organización y configuración inicial del proyecto de código abierto patchy, ofreciendo una comprensión clara de su estructura base y cómo se gestionan sus parámetros operativos.

  1. Diseño de la Estructura de Directorios

La coherencia en la disposición de los archivos es fundamental para la mantenibilidad de cualquier proyecto. patchy sigue una estructura lógica que facilita la navegación y el desarrollo:

patchy/
├── README.md
├── setup.py
├── patchy/
│   ├── __init__.py
│   ├── api.py
│   ├── config.py
│   ├── main.py
│   └── utils.py
└── tests/
    ├── __init__.py
    ├── test_api.py
    └── test_utils.py

Desglose de Componentes Clave:

  • README.md: Este archivo es la puerta de entrada al proyecto. Contiene una descripción general, los requisitos de instalación, ejemplos de uso y directrices para contribuir.
  • setup.py: Script crucial para la instalación del proyecto y la gestión de sus dependencias, asegurando que el entorno esté correctamente configurado.
  • patchy/: El corazón del proyecto, encapsulando la lógica principle y los módulos funcionales.
    • __init__.py: Marca este directorio como un paquete Python, permitiendo la importación de sus submódulos.
    • api.py: Define y expone las interfaces de programación de aplicaciones (API) que interactúan con los servicios del proyecto.
    • config.py: Centraliza la configuración de la aplicación, facilitando la adaptación del comportamiento del sistema sin modificar el código fuente.
    • main.py: Es el punto de entrada principal. Se encarga de inicializar los servicios y poner en marcha la aplicación.
    • utils.py: Contiene funciones auxiliares y herramientas de propósito genarel que son utilizadas por otros módulos del proyecto.
  • tests/: Directorio dedicado a la validación del código. Alberga las pruebas unitarias e integrales.
    • __init__.py: Identifica este directorio como un paquete de pruebas.
    • test_api.py: Implementa pruebas específicas para verificar la funcionalidad y robustez de las API definidas en api.py.
    • test_utils.py: Contiene pruebas para las funciones de utilidad, asegurando su correcto funcionamiento.
  1. El Módulo de Arranque: main.py

El archivo main.py actúa como el orquestador principal del proyecto, iniciando la aplicación y sus componentes esenciales. Su función principal es preparar el entorno y activar los servicios. A continuación, se muestra su estructura fundamental:

from patchy.api import iniciar_servicio_api
from patchy.config import cargar_configuracion

def ejecutar_aplicacion():
    # Obtener los parámetros de configuración del sistema
    parametros_config = cargar_configuracion()
    
    # Iniciar el servidor API con la configuración proporcionada
    iniciar_servicio_api(parametros_config)

if __name__ == "__main__":
    ejecutar_aplicacion()

Este script realiza dos tareas cruciales:

  • cargar_configuracion(): Invoca la función desde config.py para leer todos los ajustes operativos del proyecto.
  • iniciar_servicio_api(parametros_config): Utiliza la configuración obtenida para lanzar el servidor API, haciendo la aplicación accesible.
  1. Gestión de Parámetros: El Archivo config.py

config.py es el repositorio central de todos los parámetros de configuración que rigen el comportamiento de la aplicación patchy. Este enfoque permite una fácil adaptación del proyecto a diferentes entornos sin alterar el código base.

import os

def cargar_configuracion():
    """
    Carga los parámetros de configuración desde variables de entorno
    o usa valores predeterminados.
    """
    return {
        "HOST_API": os.getenv("HOST_API", "0.0.0.0"),
        "PUERTO_API": int(os.getenv("PUERTO_API", 8080)),
        "MODO_DEBUG": os.getenv("MODO_DEBUG", "False").lower() == "true",
        "URL_BASE_DATOS": os.getenv("URL_BASE_DATOS", "sqlite:///./db.sqlite"),
    }

Descripción de los Parámetros:

  • HOST_API: Define la dirección IP donde el servidor API escuchará las conexiones. Por defecto, está configurado para aceptar conexiones desde cualquier interfaz de red (0.0.0.0).
  • PUERTO_API: Especifica el número de puerto TCP que utilizará el servicio API. El valor predeterminado es 8080.
  • MODO_DEBUG: Un indicador booleano que activa o desactiva las funciones de depuración. Su valor por defecto es False, priorizando la seguridad y el rendimiento en entornos de producción.
  • URL_BASE_DATOS: Contiene la cadena de conexión para la base de datos. Por defecto, el proyecto utiliza una base de datos SQLite persistente en el archivo db.sqlite dentro del mismo directorio.

Estos parámetros son cargados dinámicamente, preferentemente desde variables de entorno, lo que proporciona flexibilidad para su despliegue en distintos entornos.

Etiquetas: Python ArquitecturaDeSoftware ConfiguracionDeProyectos APIRest DesarrolloBackend

Publicado el 7-28 16:48