Salı, Haziran 6, 2023

YAML

YAML dosyası nedir?

YAML dosyası, Unicode tabanlı bir veri serileştirme dili olan YAML (YAML Ain’t Markup Language) dilinden oluşur; yapılandırma dosyaları, internet mesajlaşması, nesne kalıcılığı vb. için kullanılır. YAML, dosyaları için .yaml uzantısını kullanır. Sözdizimi, belirli bir programlama dilinden bağımsızdır.

Temel olarak YAML, insan etkileşimi için ve modern programlama dilleriyle iyi çalışacak şekilde tasarlanmıştır. İsteğe bağlı yerel veri yapılarını serileştirme desteği, YAML dosyalarının okunabilirliğini artırdı, ancak ayrıştırma ve dosya oluşturma sürecini biraz karmaşık hale getirdi.

Kısa Tarih

YAML ilk olarak 2001 yılında önerildi ve Clark Evans, Ingy döt Net ve Oren Ben-Kiki tarafından geliştirildi. YAML’nin ilk olarak bir biçimlendirme dili olarak amacını belirtmek için “Başka Bir İşaretleme Dili” anlamına geldiği söylendi. Daha sonra, amacının veri odaklı olduğunu belirtmek için “YAML İşaretleme Dili Değildir” olarak yeniden tasarlandı.

YAML Dosya Biçimi

YAML dosyası aşağıdaki veri türlerinden oluşur

  • Skaler: Skaler; Dizeler, Tamsayılar, Boolean’lar vb. değerlerdir.
  • Diziler: Sıralar, her öğenin kısa çizgi (-) ile başladığı listelerdir. Listeler iç içe de olabilir.
  • Eşlemeler: Eşleme, anahtarları değerlerle listeleme yeteneği sağlar.

Sözdizimi

  • Boşluk: Boşluk girintisi, yuvalamayı ve genel yapıyı belirtmek için kullanılır.
isim: John Smith
İletişim:
ev: 1012355532
ofis: 5002586256
adres:
sokak: |
123 Kasırga Sokağı
Süit 16
şehir: Doğu Centerville
eyalet: KS
  • Yorumlar: Yorumlar “#” simgesiyle başlayarak yazılır.
# Bu bir YAML Yorumudur
  • Listeler: Tire (-), her üyenin ayrı bir satırda olduğu liste üyelerini belirtmek için kullanılır. Liste üyeleri ayrıca köşeli parantezler ([…]) içine alınabilir ve üyeler virgülle (,) ayrılır.
  - A
  - B
  - C
[A, B, C]
  • İlişkili Dizi: Bir ilişkisel dizi, kıvrımlı parantezler ({…}) ile çevrilidir. Anahtarlar ve değerler iki nokta üst üste (:) ile ayrılır ve her bir çift virgül (,) ile ayrılır.
  {name: John Smith, age: 20}
  • Dizeler: Dize, çift tırnak (“) veya tek tırnak (’) ile veya bunlar olmadan yazılabilir.
Örnek Dizi
"Örnek Dizi"
"Örnek Dizi"
  • Skaler Blok içeriği: Skaler içerik, aşağıdakiler kullanılarak blok notasyonunda yazılabilir:
    • |: All live breaks are significant.
    • >: Each line break is folded to space. It removes the leading whitespace for each line.
veri: |
YAML
(YAML İşaretleme Dili Değildir)
bir veri serileştirme dilidir
veri: ?
YAML (YAML Biçimlendirme Dili Değildir)
bir veri serileştirme dilidir
  • Birden Çok Belge: Birden çok belge, tek bir akışta üç tire (—) ile ayrılır. Tireler, belgenin başlangıcını gösterir. Kısa çizgiler, direktifleri belge içeriğinden ayırmak için de kullanılır. Belgenin sonu üç nokta (…) ile gösterilir.
  ---
Belge 1
  ---
Belge 2
...
  • Type: Değerin türünü belirtmek için çift ünlem işareti (!!) kullanılır.
a: !!kayan 123
b: !!str 123
  • Etiket: Bir nota etiket atamak için bir ve işareti (&) kullanılır ve bu düğüme referans vermek için bir yıldız işareti (*) kullanılır.
isim: John Smith
fatura adresi: &id01
sokak: |
123 Kasırga Sokağı
Süit 16
şehir: Doğu Centerville
eyalet: KS

Gönderim yeri: *id01
  • Yönergeler: YAML belgelerinden önce bir akışta yönergeler gelebilir. Yönergeler yüzde işaretiyle (%) başlar, ardından ad ve ardından boşluklarla ayrılmış parametreler gelir.
%YAML 1.2
  ---
Belge içeriği

YAML dosyası örneği

Aşağıda bir docker yaml dosyası örneği görebilirsiniz:

topology:
database_node_name: docker_controller
docker_controller_node_name: docker_controller
self_service_portal_node_name: docker_controller
kvm_compute_node_names: kvm_compute1
docker_compute_node_names: docker_compute1

YAML ve JSON

Temel olarak, hem JSON hem de YAML, insanlar tarafından okunabilen bir veri değişim formatı sağlamak için geliştirilmiştir. YAML, JSON biçiminin bir üst kümesi olarak gerçekleştirilir. Bu, bir YAML ayrıştırıcısı kullanarak JSON’u ayrıştırabileceğimiz anlamına gelir. Bu teorinin pratik uygulaması biraz zor olsa da. Bu nedenle, YAML ve JSON arasındaki bazı temel farklılıklar aşağıda verilmiştir:

YAML JSON
Serileştirilmiş verileri ayrıştırmanın karmaşık ve zaman alıcı süreci Daha basit tasarımıyla JSON serileştirilmiş verileri hızlı ve kolay bir şekilde ayrıştırın
Daha az topluluk desteği Daha geniş topluluk desteği ve popülaritesi
Yorumları destekler Yorumları desteklemiyor
Diğer veri nesnelerinin referansını kullanabilme Karmaşık yapıları nesne referanslarıyla seri hale getirmek imkansız
Hiyerarşi çift boşluk karakterleri kullanılarak gösterilir. Sekme karakterlerine izin verilmez Nesneler ve Diziler köşeli ayraçlar ve parantezler içinde gösterilir.
Dize tırnaklar isteğe bağlıdır ancak tek ve çift tırnakları destekler. Dizeler çift tırnak içinde olmalıdır.
Kök düğüm, geçerli veri türlerinden herhangi biri olabilir Kök düğüm, bir dizi veya bir nesne olmalıdır.
Önceki İçerikXSD
Sonraki İçerikVCXPROJ

BENZER YAZILAR

WhatsApp Sonunda Kendi Kendinize Mesaj Göndermenizi Sağlıyor

WhatsApp bazı dosyaları veya hatırlatıcıları paylaşmak istiyorsanız kendinize mesaj göndermenize izin verecek bir özellik kazanıyor. Neyse ki, özellik sonunda kullanıma sunuluyor, ancak telefonunuzu elinize...

Apple’ın Şirket İçi 5G Modemi 2025’e Kadar Hazır Olmayacak ve Qualcomm’un Tek Tedarikçi Olmanın Avantajlarından Yararlanmasını Sağlayacak

Qualcomm'un daha önce olduğu bildirildi Apple'ın özel 5G modem tedarikçisi 2023'te piyasaya sürülen iPhone 15 serisi için en son rapora göre San Diego çip...

Neriman Uğur Kimdir – Neriman Uğur Biyografisi

Neriman Uğur Kimdir - Neriman Uğur Resimleri - Neriman Uğur Biyografisi - Neriman Uğur Hakkında    Neriman Uğur (d. 1958 Fethiye , Muğla) Türk, tiyatro, sinema...

LG Energy, Kuzey Amerika’da pil fabrikaları kurmak için 6.5 trilyon won harcayacak

Resim: LG Energy Solution   Arizona’da kendi binasını inşa edecek LG Energy Solution, Kuzey Amerika’da iki yeni pil fabrikası inşa etmek için 6.5 trilyon won harcamayı planlıyor. Bu...

Büyük Satranç Tahtası – Zbigniew BRZEZINSKI

Kitabın Adı Büyük Satranç TahtasıKitabın Yazarı Zbigniew BRZEZINSKIYayınevi ve Adresi Sabah Kitapçılık A.Ş. Medya Plaza, Basın Ekspres Yolu 34540 Güneşli/İSTANBULBasım Yılı 1988KİTABIN ÖZETİZbigniew Brzezinski;...

Apple, Küresel Durgunluğun Talep Üzerindeki Etkisini En Aza İndirmek İçin iPhone 14 Etkinliğine Erken Ev Sahipliği Yapıyor

Yakın zamanda, Apple’ın en son amiral gemisi iPhone 14 serisini duyurmak için 7 Eylül’de ilk sonbahar etkinliğine ev sahipliği yapacağı daha önce bildirilmişti. Haber doğruysa,...

POPÜLER YAZILAR

Gigabyte, 600 ve 700 Serisi Anakartlarına “Yeni Nesil Intel Masaüstü CPU” Desteği Ekliyor

Gigabyte, 600 ve 700 serisi anakartları için Intel'in yeni nesil masaüstü CPU desteği ekleyen yeni bir BIOS güncellemesini sessizce yayınladı. Gigabyte 600 ve 700 Serisi...

Apple AR Kulaklığını Pazartesi Günü Açıklayacak, Ancak Cihaz Ekim’de Seri Üretime Gireceğinden Lansman Aylar Sürebilir

Apple'ın merakla beklenen AR Kulaklığını Pazartesi günü WWDC etkinliğinde piyasaya sürmesi bekleniyor. Cihaz bir süredir söylenti değirmeninde dinlendi ve birkaç gecikmeden sonra, kulaklık nihayet...

Gmail Doğrulama Rozetlerini hatırlıyor musunuz? Dolandırıcılar Onlardan Yararlanmanın Bir Yolunu Buldu

Google, insanların her e-posta aldıklarında güvende olmalarını sağlamanın çeşitli yollarını araştırmaktadır. Şirket, aşağıdakiler de dahil olmak üzere çeşitli önlemler aldı: yakın zamanda duyuruldu İleti...

Apple’ın 12 Çekirdekli ‘X1’ Yonga Setli AR Kulaklığı, Yeni Benchmark Sızıntısında M2 Max’ten Daha Hızlı Performans Gösteriyor, Ama Ne yazık ki Skorlar Sahte

SoC'nin X1 olarak adlandırıldığını ortaya çıkaran en son kıyaslama sızıntısını duymak bizim için şaşırtıcıydı. 8 çekirdekli bir CPU yerine liste, M2 Max'ten daha yüksek...