← Principios básicos ETAPA 01 · 30 MIN

De un script a una herramienta pequeña

Organiza tu primer programa para que otra persona pueda ejecutarlo, revisarlo y ampliarlo.

Abrir en el laboratorio ↗

AL TERMINAR, PODRÁS

  • Separar el código reutilizable del punto de entrada
  • Explicar los imports y las fronteras entre módulos
  • Definir un flujo de trabajo local reproducible
Una herramienta pequeña: una entrada, módulos por responsabilidad y tests que comprueban el núcleo.

Descripción del diagrama: Terminal → cli.py (comando); cli.py → relay/core.py (llama); relay/core.py → store.py (guarda); tests/ → relay/core.py (comprueban); README.md → cli.py (explica)

Dale una entrada al programa

Un script (un archivo de código que se ejecuta directamente) se vuelve una herramienta útil cuando sus entradas, sus salidas y la forma de invocarlo están claras.

Pon las decisiones reutilizables en funciones y deja la interacción por línea de comandos en una función main, el punto de entrada (entry point) donde empieza a ejecutarse el programa. La comprobación de __name__ evita que el flujo de línea de comandos se ejecute solo porque otro módulo importa tu código. Eso también hace que las funciones sean más fáciles de probar.

Para la primera versión de Relay, recibe el nombre de un trabajo, valídalo, procésalo e imprime un resultado claro. Un comportamiento pequeño y predecible es un buen punto de partida.

Python
def describe_job(name):
    return f"Queued: {name}"

def main():
    print(describe_job("daily-report"))

if __name__ == "__main__":
    main()

Organiza por responsabilidad

Un módulo es un archivo de Python con su propio espacio de nombres (namespace).

Divide el código cuando una frontera aclare las responsabilidades: el comportamiento de la cola, la lectura de la entrada y el almacenamiento son fronteras tempranas razonables. Crear muchos archivos diminutos antes de entender las responsabilidades agrega navegación sin agregar claridad. Los imports ejecutan las instrucciones que están en el nivel superior del módulo, así que evita llamadas de red o acciones destructivas al importar.

Mantén la configuración separada de la lógica central y pásala de forma explícita. Alguien debería poder entender cómo funciona Relay sin descubrir configuraciones ocultas repartidas por módulos que no tienen relación.

Haz que la primera ejecución sea aburrida

Un flujo reproducible indica la versión de Python compatible, cómo se instalan las dependencias y el comando que ejecuta el programa.

Un entorno virtual (virtual environment) aísla los paquetes del proyecto de otros proyectos; no es una caja de seguridad (sandbox). Incluye un README (el archivo de introducción del proyecto) con un ejemplo que funcione y la salida esperada. No agregues paquetes externos para algo que la biblioteca estándar (standard library: los módulos que vienen con Python) ya resuelve bien.

En esta etapa, un buen entregable es un programa pequeño que otra persona que está aprendiendo pueda ejecutar y explicar, más una lista honesta de sus límites.

ERROR FRECUENTE

El código que solo funciona desde una carpeta personal concreta no es una herramienta reproducible. Resuelve las rutas de archivos de forma deliberada.

INTÉNTALO TÚ

Separa un script pequeño en una función reutilizable y main(). Impórtalo desde otro archivo y comprueba que la interacción por línea de comandos no se ejecuta al importarlo.

COMPROBACIÓN DE RECUERDO / APLICA LA IDEA

Decide en el laboratorio.

El checkpoint de dos preguntas, tus notas y tu progreso guardado están en el laboratorio. Gratis y sin cuenta.

Abrir en el laboratorio ↗

CONÉCTALO CON RELAY

Empaqueta Relay v0 como una herramienta pequeña de línea de comandos con un README, un punto de entrada claro y la limitación documentada de que todo vive solo en memoria.

VE A LA FUENTEPython: módulos ↗Python: entornos virtuales ↗Las fuentes están en inglés.