0Pricing
Ruby Academy · Aula

Escolhendo um formato

Compromissos.

Escolhendo um formato é uma aula grátis de Ruby Academy no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Ruby Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Ruby Academy inclui 4 aulas no total.

Três formatos, três finalidades

Agora você conhece JSON, CSV e YAML. Cada formato é mais adequado para situações diferentes. Escolher o formato certo mantém seus dados fáceis de produzir, armazenar e consumir.

  • JSON para APIs e a web
  • CSV para dados tabulares ou de planilhas
  • YAML para configurações
puts ['JSON', 'CSV', 'YAML'].join(', ')

Pontos fortes do JSON

JSON é compacto, tem suporte universal e corresponde a mapas e listas aninhados. Ele é o padrão de fato para APIs web e para a troca de dados entre serviços.

require 'json'
puts({ id: 1, items: [1, 2] }.to_json)

Pontos fracos do JSON

JSON não tem comentários e é prolixo para edição manual. Vírgulas finais e aspas simples são inválidas, o que causa problemas para as pessoas em arquivos de configuração.

require 'json'
begin
  JSON.parse('{"a":1,}')
rescue JSON::ParserError
  puts 'trailing comma not allowed'
end

Pontos fortes do CSV

CSV é perfeito para dados simples e tabulares: linhas e colunas. Planilhas, exportações e importações em massa usam CSV, que também é extremamente compacto para tabelas grandes.

require 'csv'
puts(CSV.generate { |c| c << ['a', 'b']; c << [1, 2] })

Pontos fracos do CSV

CSV não consegue representar dados aninhados ou hierárquicos. Ele não tem um sistema de tipos padrão, portanto tudo é uma cadeia de caracteres até ser convertido, e as variantes (separadores e uso de aspas) divergem.

require 'csv'
row = CSV.parse_line('5,true')
puts(row[0].class)
puts(row[1].class)

Pontos fortes do YAML

YAML é o formato mais legível para humanos, aceita comentários e lida bem com aninhamento. Por isso, é ideal para arquivos de configuração que os desenvolvedores editam manualmente.

require 'yaml'
text = "# app config\nport: 8081"
puts(YAML.load(text)['port'])

Pontos fracos do YAML

As regras de indentação do YAML são propensas a erros (um espaço indevido pode invalidá-lo), e o carregamento inseguro pode representar um risco de segurança. Ele também é mais lento para ser analisado do que JSON.

require 'yaml'
cfg = YAML.safe_load("port: 8081")
puts(cfg['port'])

Comparação de aninhamento

JSON e YAML representam naturalmente a mesma estrutura aninhada; CSV não consegue fazer isso.

require 'json'
require 'yaml'
data = { 'user' => { 'name' => 'Ada', 'roles' => ['admin'] } }
puts(data.to_json)
puts(data.to_yaml)

Legibilidade versus compactação

Compromisso: YAML é o mais legível, JSON é equilibrado e CSV é o mais compacto para tabelas. Escolha com base em quem será o principal consumidor: pessoas ou máquinas.

require 'json'
require 'yaml'
h = { 'a' => 1, 'b' => 2 }
puts("JSON len: #{h.to_json.length}")
puts("YAML len: #{h.to_yaml.length}")

Um guia para decidir

Regras rápidas:

  • Você está se comunicando com uma API web? JSON
  • Está exportando linhas para uma planilha? CSV
  • São configurações do aplicativo que uma pessoa editará? YAML

Em caso de dúvida, JSON é a opção padrão mais segura para intercâmbio.

choice = { api: 'JSON', table: 'CSV', config: 'YAML' }
puts(choice[:config])

Conversão entre formatos

Como os três formatos são analisados nas mesmas estruturas de mapas e listas do Ruby, a conversão é simples: analise um formato e serialize outro.

require 'json'
require 'yaml'
data = JSON.parse('{"port":8081,"name":"app"}')
puts(data.to_yaml)

Verificação rápida

Qual formato é a melhor opção padrão para um arquivo de configuração que os desenvolvedores editam manualmente e no qual desejam usar comentários?

Recapitulação: escolhendo um formato

Agora você pode escolher a ferramenta certa:

  • JSON: APIs, intercâmbio, equilíbrio
  • CSV: tabelas simples, planilhas, compactação
  • YAML: configuração, legibilidade, comentários, aninhamento
  • Todos são analisados nas mesmas estruturas do Ruby, portanto a conversão é fácil
require 'yaml'
require 'json'
puts(YAML.load('a: 1').to_json)

Perguntas Frequentes

A aula “Escolhendo um formato” é grátis?

Sim — o texto completo de “Escolhendo um formato” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Ruby Academy, atualize para CoddyKit PRO. O curso de Ruby Academy inclui 4 aulas no total.

O que vou aprender em “Escolhendo um formato”?

Compromissos. Você pratica Ruby Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Ruby Academy?

Nenhuma experiência prévia é necessária. Ruby Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.

Quanto tempo leva a aula “Escolhendo um formato”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Ruby Academy?

Sim. Cada aula de Ruby Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Lendo e escrevendo JSON
  2. Trabalhando com CSV
  3. Configuração em YAML
  4. Escolhendo um formato
← Voltar para Ruby Academy