Generación de código: superando la rutina del desarrollo
Un artículo de un ingeniero de DevOps en el holding de TI T1 explica cómo implementar la generación de código en varias etapas del ciclo de vida del desarrollo, desde fragmentos simples hasta generación en tiempo de ejecución. El autor cubre el uso de concatenación, plantillas con Jinja2 y árboles de sintaxis (AST y CST) para modificar código existente, y discute el futuro con LLM y el Protocolo de Contexto de Modelo (MCP). Se ofrecen consejos prácticos sobre comenzar con formateadores de código y usar herramientas como OpenAPI-generator y Cookiecutter.
El artículo, escrito por Ivan, ingeniero DevOps en el holding IT T1, enfatiza que la generación de código es esencial para garantizar que el código coincida con un esquema especificado como OpenAPI, evitando la desviación entre el esquema y la implementación. El autor describe los niveles de automatización: fragmentos de IDE, generación en tiempo de desarrollo, generación para módulos comunes (clientes de API, esquemas de mensajes), generación en tiempo de compilación (incrustando URL de backend, claves de licencia), generación en tiempo de despliegue y generación en tiempo de ejecución (utilizada en entornos sin código o de bajo código, por ejemplo, PyTest). Se detallan los métodos para crear generadores: concatenación simple de cadenas, plantillas con Jinja2 para soporte multilenguaje, y uso de Árboles de Sintaxis Abstracta (AST) en Python para refactorizar código existente, aunque AST pierde comentarios y formato. Los Árboles de Sintaxis Concreta (CST) mediante libcst preservan comentarios y estilo, lo que permite una refactorización segura. El artículo también discute el potencial de los Modelos de Lenguaje Grande (LLM) y el Protocolo de Contexto de Modelo (MCP) para reducir las alucinaciones al dar a los modelos herramientas para interactuar con el código base, citando agentes como 'oh my pi'. El consejo práctico incluye comenzar con un formateador de código, usar OpenAPI-generator para contratos de servicio y Cookiecutter para plantillas de microservicios, concluyendo que la generación de código escala y limpia las bases de código, pero requiere una selección adecuada de herramientas.
Fuente: Habr — хаб ИИ —
original
