Skip to content
Latchkey

CUE vs YAML: Configuração Tipada vs YAML Simples

YAML é um formato de dados simples que é universal, mas não tem tipos nem validação; CUE é uma linguagem que produz e valida dados com restrições. YAML é mais simples; CUE captura erros que o YAML não consegue.

Isto não é uma luta equivalente: YAML é um formato de serialização, CUE é uma linguagem de configuração que pode emitir YAML. As equipes recorrem ao CUE quando o YAML puro se torna propenso a erros em escala. Aqui está a comparação honesta de quando cada um é a ferramenta certa.

CUEYAML
O que éLinguagem de configuração + validadorFormato de serialização de dados
Tipos/restriçõesDe primeira classe, impostosNenhum (strings, números, listas, maps)
Reutilização/DRYImports, definições, unificaçãoAnchors/aliases (limitado)
ValidaçãoEmbutidaExterna (schemas, linters)
UbiquidadeCrescendoEm toda parte
Melhor usoConfiguração grande e propensa a errosConfiguração pequena e simples

Quando o YAML simples é suficiente

Para um punhado de arquivos, YAML é a escolha certa: todos leem, toda ferramenta consome, e não há nada a aprender. Suas lacunas (sem tipos, fácil de indentar errado, anchors são desajeitados) só incomodam em escala. Não adicione uma linguagem de configuração a um projeto pequeno só porque você pode.

Quando o CUE compensa

Quando você tem muitos arquivos YAML quase idênticos, overrides específicos de ambiente e erros recorrentes de copiar e colar, o CUE justifica seu valor: ele impõe schemas, remove duplicação via definições e falha rápido em valores inválidos. Você ainda emite YAML para as ferramentas que precisam dele, mas escreve e valida em CUE.

Em CI

Mesmo que você mantenha o YAML, adicione um passo de validação (verificação de schema ou linter). Se adotar CUE, rode cue vet/cue export no CI para que configuração ruim seja rejeitada antes do deploy. O objetivo é o mesmo: nenhuma configuração inválida chega à produção.

O veredito

Mantenha o YAML simples para configuração pequena e simples, onde sua ubiquidade vence; adote CUE quando o volume de configuração e as exigências de correção ultrapassam o YAML editado à mão. CUE ainda pode gerar YAML, então ele complementa em vez de substituir totalmente.

Guias relacionados