Programação e desenvolvimento de software

Como as Modern Go Guidelines ajudam os agentes de programação com IA a escrever código Go atualizado

A GoLand, da JetBrains, lançou um projeto de código aberto que fornece aos agentes de programação orientações associadas à versão do Go usada no projeto, reduzindo sua dependência de padrões antigos ou recursos incompatíveis. O projeto utiliza as ferramentas list e explain para fornecer gradualmente o contexto adequado sem modificar os arquivos do projeto.

2026-08-24
6 min de leitura
12 visualizações
فريق تحرير certi.news
Como as Modern Go Guidelines ajudam os agentes de programação com IA a escrever código Go atualizado

Os agentes de programação com IA podem produzir código Go executável, mas isso não significa que usem as sintaxes mais recentes da linguagem ou os acréscimos mais novos à sua biblioteca padrão. Os padrões mais antigos de Go estão muito mais presentes nos dados de treinamento, enquanto os recursos mais recentes podem não aparecer nos dados nos quais o modelo se baseou. Para lidar com essa lacuna, a equipe da GoLand na JetBrains criou um projeto de código aberto chamado Modern Go Guidelines, que fornece aos agentes orientações práticas associadas à versão do Go declarada no projeto.

O que o projeto oferece?

As orientações abrangem recursos da linguagem e acréscimos úteis à biblioteca padrão nas versões do Go de 1.0 a 1.27, além dos padrões tratados pelo analisador go modernize. O agente não recebe orientações para versões mais recentes do que a versão usada no projeto. Se o arquivo go.mod contiver a diretiva go 1.25, o agente poderá usar as orientações do Go 1.25 e das versões anteriores, mas não receberá sugestões baseadas no Go 1.26 ou no Go 1.27.

Isso significa, de acordo com o exemplo apresentado no material, que o agente pode sugerir sync.WaitGroup.Go, introduzido no Go 1.25, mas não sugerirá errors.AsType, que exige o Go 1.26. Essa associação entre as orientações e a versão do projeto pretende reduzir a probabilidade de gerar código que exija uma versão mais recente do ambiente disponível, além de diminuir a quantidade de contexto desnecessário que o agente precisa ler.

Divulgação gradual em vez de carregar todo o contexto

O complemento inclui uma ferramenta de linha de comando chamada go-modern-guidelines e uma habilidade de instruções chamada use-modern-go. A ferramenta oferece dois comandos principais:

  • list: exibe orientações curtas e relevantes para um arquivo Go ou para uma versão específica.
  • explain: fornece uma explicação mais detalhada e um exemplo que compara o padrão antigo com a alternativa moderna.

As instruções recomendam que o agente execute o comando list para o arquivo em questão antes de modificá-lo e use explain quando precisar entender uma regra específica. É possível solicitar orientações para um arquivo como ./internal/worker/worker.go ou especificar diretamente a versão usando --go-version 1.27. A saída de list começa com as orientações aplicáveis mais recentes e inclui um identificador estável para cada regra, como sync_waitgroup_go, testing_t_context e json_omitzero.

Exemplos de padrões modernos

As orientações incluem exemplos práticos de substituição de padrões comuns por outros mais recentes, como usar slices.Contains em vez de um loop de busca escrito manualmente, e min e max em vez de comparações manuais, além de cmp.Or em vez de uma sequência que escolhe o primeiro valor não zero.

Elas também explicam o uso de sync.WaitGroup.Go em vez de distribuir separadamente as operações Add, go e Done; o uso de errors.AsType para a correspondência de erros com segurança de tipos no Go 1.26 e posteriores; e o uso de new(value) quando é necessário um ponteiro para um valor no Go 1.26 e posteriores. No Go 1.27, as orientações apresentam strings.CutLast e bytes.CutLast como alternativas a LastIndex e ao fatiamento manual.

O exemplo de generic_methods, disponível desde o Go 1.27, mostra como mover uma operação genérica de uma função auxiliar no nível do pacote para um método do tipo quando a operação está naturalmente associada a esse tipo. O comando explain retorna uma explicação da regra com um exemplo de antes e depois e também pode explicar várias regras em uma única chamada.

O que muda na prática para os desenvolvedores?

O principal valor aqui não é atualizar automaticamente código antigo, mas fornecer ao agente uma referência pequena e específica durante a geração ou a modificação do código. O projeto se integra a ferramentas como go fix em vez de substituí-las: as orientações do Modern Go Guidelines ajudam o agente a começar com um padrão moderno, enquanto o go fix ajuda a atualizar padrões que já existem na base de código.

O complemento pode ser instalado a partir do marketplace de extensões ou de um repositório local. A integração exige que a cadeia de ferramentas do Go esteja no PATH. No primeiro uso, a integração instala a ferramenta de linha de comando por meio de go install e a armazena em um cache local, sem modificar o próprio projeto. O material apresenta comandos para adicionar o repositório como marketplace do Claude, instalar modern-go-guidelines e ativar /use-modern-go. Também menciona um caminho para testar um repositório local antes de publicá-lo ou atualizá-lo, com exemplos que incluem Claude e Codex.

Leitura da certi.news

O projeto aborda um problema prático no uso de agentes de inteligência artificial: a correção do código do ponto de vista da compilação não garante sua adequação à versão da linguagem nem sua adoção das melhores práticas disponíveis. Associar as orientações ao arquivo go.mod estabelece um limite técnico claro para o que o agente pode sugerir, enquanto a divulgação gradual reduz a sobrecarga causada por contexto de que ele não precisa. No entanto, a ferramenta não elimina a necessidade de revisão do desenvolvedor ou de testes; ela fornece regras e exemplos ao agente, e a fonte não demonstra que ela verifique de forma independente cada alteração produzida. Além disso, a cobertura anunciada chega ao Go 1.27, portanto as orientações para versões posteriores ainda precisarão ser adicionadas e atualizadas.

Fonte da notícia
JetBrains Blog
Abrir fonte original ↗
ف
Autor

فريق تحرير certi.news

Na mesma categoria

Você também pode gostar

Ver todas as notícias