Programlama

YAML

YAML nedir?

YAML’ı Clark Evans 2001’de önerdi. Ingy döt Net ve Oren Ben-Kiki de ilk yazarlardandır. Adı «YAML Ain't Markup Language» demektir. Önce «Yet Another Markup Language» sayıldı, sonra işaretleme dili olmadığını söylemek için değişti. Anahtar ve değer iki nokta ile ayrılır. Liste tire ile başlar. Aynı bloğun satırları aynı sayıda boşlukla girer. Sekme boşluk yerine kullanılmaz. Docker Compose, GitHub Actions ve birçok sunucu ayarı bu dosyayı okur. Dosyanın kendisi hiçbir şey çalıştırmaz. Onu okuyan program çalıştırır.

YAML ne için kullanılır?

YAML insanın okuyabildiği ayar içindir. Liste, ad ve değer bir dosyada durur.

  • Sunucunun portunu ve adını yazmak
  • Birkaç adımlı işin listesini tutmak
  • Docker hizmetlerinin ayarını yazmak
  • Aynı anahtarı birkaç ortamda değiştirmek

YAML ile ne yapılabilir?

YAML ile anahtar, liste ve iç içe blok yazarsın. Hesap çalıştırmaz ve sayfa çizmez. Program dosyayı kendi kuralıyla okumalıdır. Yanlış girinti başka bloğu içine alır ve program başka ayar görür. Parolayı bu dosyayla depoya koymamak gerekir.

YAML öğrenmek zor mu?

İki satır yazmak kolaydır. Zorluk boşluk sayısındadır. Bir satır az veya çok girince blok bozulur. Sekme ve boşluk karışınca okuyan program durur. Aynı söz bazen metin, bazen doğru-yanlış, bazen sayı sayılır. Bunu istemeden bırakmak ayarı değiştirir. JSON’da kapanmayan yeri parantez gösterir. YAML’da hata daha sessizdir.

Avantajları ve sınırları

Avantaj: dosya kısa okunur, yorum yazılır, liste JSON’dan sakin görünür. Sınır: girinti hatası başka anlam verir. YAML, JSON değildir ve program değildir.

Temel kavramlar

Anahtar addır. Değer o ada yazılandır. Girinti hangi bloğun içinde olduğunu söyler.

  • İki nokta anahtarı değerden ayırır
  • Tire liste maddesidir
  • Boşluk sayılır, sekme değil
  • Dosyanın kendisi program çalıştırmaz

Kısa örnek

Bu, bir sunucunun adını ve portunu yazar. Programı başlatmaz.

name: nibras
port: 8080

Sık sorulan sorular

  • YAML ve JSON aynı mı? Hayır. İkisi de ayar tutabilir. JSON parantez kullanır. YAML girinti kullanır ve yorum yazılır.
  • YAML programlama dili mi? Hayır. Dosyayı okuyan program işi görür. YAML kendi hiçbir şey çalıştırmaz.
  • Girinti sekme ile olur mu? Hayır. Girinti boşlukla yazılır. Sekme okuyanı durdurabilir.