Entorno de desarrollo local
Una herramienta de línea de comandos para el entorno local
Levantar la plataforma en local implicaba muchos pasos manuales. Armé una herramienta de línea de comandos que clona, configura, diagnostica y arranca el entorno con un asistente.
- El problema
- Preparar el entorno local dependía de pasos manuales y conocimiento disperso.
- La decisión
- Una herramienta de línea de comandos delgada que orquesta scripts y guía con un asistente.
- En qué terminó
- El entorno se prepara y arranca con pocos comandos y se detiene limpio.
El problema
La plataforma está repartida en muchos repositorios independientes. Correrla en local exigía clonar cada uno, instalar dependencias, preparar la configuración de cada servicio y arrancarlos en el orden correcto. Ese conocimiento estaba repartido entre documentos y personas, y cada persona nueva lo volvía a descubrir.
Decisiones
Una capa delgada sobre scripts. La herramienta está escrita en TypeScript y delega el trabajo pesado en scripts de bash. Una futura interfaz gráfica debería llamar a esa misma capa en lugar de duplicar la lógica. Costo: dos lenguajes que mantener y dependencia de herramientas Unix, así que el objetivo principal es macOS y Linux.
Asistente por defecto, opciones para automatizar. Sin argumentos, la herramienta pregunta qué partes levantar. Con opciones, se puede usar desde otros scripts. Costo: dos puntos de entrada que mantener alineados.
Configuración en tiempo de ejecución. La herramienta pasa la configuración a cada proceso al arrancarlo, sin reescribir archivos en disco. Costo: reiniciar un servicio tiene que pasar por el mismo mecanismo para no perderla.
Advertir en lugar de actuar sobre recursos compartidos. Cuando una opción afecta algo compartido con otras personas, la herramienta lo advierte y sugiere el paso, pero no lo ejecuta. Costo: ese paso queda en manos de quien la usa.
Resultado
- Preparar el entorno quedó en pocos pasos documentados.
- Un comando de diagnóstico revisa requisitos, dependencias y configuración, e indica qué bloquea.
- Detener el entorno cierra todos los procesos que se abrieron.
- Cada entrega quedó documentada con su verificación manual.
Qué haría distinto
Tendría un solo registro de repositorios desde el principio, en lugar de listas que hubo que unificar después. También escribiría pruebas unitarias para las partes puras desde el comienzo.