Geração de Código: Cortando Através da Rotina de Desenvolvimento
Um artigo de um engenheiro de DevOps na holding de TI T1 explica como implementar a geração de código em vários estágios do ciclo de vida do desenvolvimento, desde snippets simples até geração em tempo de execução. O autor aborda o uso de concatenação, templating com Jinja2 e árvores sintáticas (AST e CST) para modificar código existente, e discute o futuro com LLMs e o Model Context Protocol (MCP). Conselhos práticos são dados sobre começar com formatadores de código e usar ferramentas como OpenAPI-generator e Cookiecutter.
O artigo, de autoria de Ivan, engenheiro de DevOps na holding de TI T1, enfatiza que a geração de código é essencial para garantir que o código corresponda a um esquema especificado, como OpenAPI, prevenindo a divergência entre esquema e implementação. O autor descreve níveis de automação: snippets de IDE, geração em tempo de desenvolvimento, geração para módulos comuns (clientes de API, esquemas de mensagens), geração em tempo de build (incorporando URLs de backend, chaves de licença), geração em tempo de implantação e geração em tempo de execução (usada em ambientes no-code/low-code, por exemplo, PyTest). Métodos para criar geradores são detalhados: simples concatenação de strings, templating com Jinja2 para suporte a múltiplas linguagens e uso de Árvores Sintáticas Abstratas (AST) em Python para refatorar código existente, embora AST perca comentários e formatação. Árvores Sintáticas Concretas (CST) via libcst preservam comentários e estilo, permitindo refatoração segura. O artigo também discute o potencial de LLMs e o Protocolo de Contexto do Modelo (MCP) para reduzir alucinações, dando aos modelos ferramentas para interagir com a base de código, citando agentes como 'oh my pi'. Conselhos práticos incluem começar com um formatador de código, usar OpenAPI-generator para contratos de serviço e Cookiecutter para templates de microsserviços, concluindo que a geração de código escala e limpa bases de código, mas requer seleção adequada de ferramentas.
Fonte: Habr — хаб ИИ —
original
