De un script a una herramienta pequeña
Organiza tu primer programa para que otra persona pueda ejecutarlo, revisarlo y ampliarlo.
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
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.
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.
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.