0

Linguagem YAML - Se você não conhece, uma hora vai conhecer.

Leonardo Demetrio
Leonardo Demetrio

Oi pessoal, tudo bem ?

Galera hoje eu vou falar do YAML ou Yet another markup language


Criada em 2001, o Yaml não é apenas uma linguagem de marcação, mas sim uma linguagem de serialização de dados.


O que é Serialização ?


Serialização, é a técnica que permite converter objetos em bytes. Com essa conversão, esses dados podem ser salvos em disco ou enviados através de stream via HTTP, Sockets e outros.




Ok, mas onde entra o YAML nisso ?

Com o Yaml é possível fazer essa serialização de forma simples, além da linguagem ter alguns benefícios.


O YAML foi criado com objetivo de :

  • Ser lido facilmente por humanos
  • Portátil
  • Integrar facilmente com outras linguagens
  • Fácil de implementar e usar


O Yaml é a linguagem principal para criar configurações em algumas aplicações feitas em Docker e Kubernetes. Por ser um arquivo leve, podemos colocar nele todas as configurações que nosso cluster Kubernetes necessita, subir ele e automaticamente o Kubernetes vai ler o arquivo e vai fazer o que for necessário sem a necessidade do desenvolvedor ficar mexendo no sistema dos containers.


Sintaxe

Essa é a sintaxe do Yaml, ela tem esse jeito meio estranho parecido com Python. Entretanto, enquanto o Python em 4 espaços o Yaml tem 2 espaços.



host: DigitalInnovationOne
datacenter:
  location: São Paulo
  router: 42
roules:
  - web
  - dns


O Yaml tem 2 estruturas. A de cima é chamada de estilo block e temos também o estilo flow logo abaixo.


host2: "geek"
datacenter: {location:
  São Paulo, router: 42 }
roles: [ web, dns]


Se você vem do JavaScript talvez esteja começado a entender. host é uma chave valor, datacenter é um objeto e roles é um array.



O Yaml é forma por estrutura de chave valor que chamamos de mapeamento ou coleção. Ou seja, todo mapeamento é uma estrutura de chave e valor.


Aqui temos uma estrutura chave valor

chave      : valor
host       : Digital innovation one
datacenter : location : São Paulo
datacenter : router : 42


Neste caso, Location e router são valores de datascenter, porém eles também são chave dos valores São Paulo e 42. Dessa forma eu tenho um mapeamento dos dados a serem lidos.


host: DigitalInnovationOne
datacenter:
  location: São Paulo
  router: 42


Um outro ponto a ser dito são as listas. As listas também podem ser chamadas de sequências.


roules:
  - web
  - dns


Para o pessoal de Java ou .NET seria igual a isso

String[] roules = new String[] {web,dns}

ou

roules = [web, dns]


Quando queremos passar um passo a passo ou tags para a nossa aplicação, podemos utilizar as listas para fazer isso.



Valores escalares


Em Yaml somente os valores escalares são lidos, ou seja, os tipos primitivos como String, Bool, Int, float.


Tirando o 42, todos os campos são Strings e estou falando todos até as chaves.


  • Quando você tem um valor que não será usado em processamento, devesse coloca-lo entre aspas para ser uma String


Podemos também imprimir certas mensagens de exceção em caso de erro no console. Para isso, podemos utilizar o | pipe ou o > maior que.


  • O | respeita a quebra de linha colocado pelo desenvolvedor. Muitos escrevem código depois dele.


  • O > escreve tudo em uma única linha, entretanto você pode criar uma hierarquia de texto com ele.



Estrutura


No Yaml, não é permitido chaves duplicadas no mesmo arquivo. Entretanto, se quisermos escrever uma nova configuração é possível haver a repetição de chaves se houver a adição dos 3 traços (---).


O primeiro Host é a configuração 1 e o segundo 2.


TAGS


É possível fazer uma tag para nossa configuração a fim de chamar ela na configuração.


Aqui criamos a tag DIO


Ancoras


As ancoras são como TAGS, mas podemos reaproveitar elas em todas as configurações durante o documento.

Usamos o & para pegar o valor e o símbolo de * para referenciar



Uma outra coisa que podemos fazer é o Casting. Podemos usar o !!str para transformar um valor em String e !!int para transformar um valor em inteiro.




Bom galera eu quis passar um Over view da Linguagem YAML


Até o próxima artigo. Fiquem com Deus e abraço!

0
2

Comentários (0)

Analista de sistemas apaixonado por tecnologia, marketing e games

Brasil