YAML
YAML nədir?
YAML-ı Clark Evans 2001-ci ildə təklif edib. Ingy döt Net və Oren Ben-Kiki də ilk müəlliflərdəndir. Adı «YAML Ain't Markup Language» deməkdir. Əvvəl «Yet Another Markup Language» sayılıb, sonra işarələmə dili olmadığını demək üçün dəyişib. Açar və qiymət iki nöqtə ilə ayrılır. Siyahı tire ilə başlayır. Eyni blokun sətirləri eyni sayda boşluqla girir. Tab boşluq yerinə işlənmir. Docker Compose, GitHub Actions və bir çox server ayarı bu faylı oxuyur. Fayl özü heç nə işlətmir. Onu oxuyan proqram işlədir.
YAML nə üçün istifadə olunur?
YAML adamın oxuya biləcəyi ayar üçündür. Siyahı, ad və qiymət bir faylda durur.
- Serverin portunu və adını yazmaq
- Bir neçə addımlı işin siyahısını saxlamaq
- Docker xidmətlərinin ayarını yazmaq
- Eyni açarı bir neçə mühitdə dəyişmək
YAML ilə nə etmək olar?
YAML ilə açar, siyahı və iç-içə blok yazırsan. O, hesab işlətmir və səhifə çəkmir. Proqram faylı öz qaydası ilə oxumalıdır. Səhv girinti başqa bloku içinə salır və proqram başqa ayar görür. Parolu bu fayla repoya qoymaq olmaz.
YAML öyrənmək çətindirmi?
İki sətir yazmaq asandır. Çətinlik boşluq sayındadır. Bir sətir az və ya çox girəndə blok sınırır. Tab və boşluq qarışanda oxuyan proqram dayanır. Eyni söz bəzən mətn, bəzən doğru-yanlış və bəzən rəqəm sayılır. Bunu istəmədən buraxmaq ayarı dəyişir. JSON-da mötərizə bağlanmayan yeri göstərir. YAML-da səhv daha sakitdir.
Üstünlükləri və məhdudiyyətləri
Üstünlük: fayl qısa oxunur, şərh yazılır, siyahı tiresiz JSON-dan sakit görünür. Məhdudiyyət: girinti səhvi başqa məna verir. YAML JSON deyil və proqram deyil.
Əsas anlayışlar
Açar addır. Qiymət həmin ada yazılandır. Girinti hansı blokun içində olduğunu deyir.
- İki nöqtə açarı qiymətdən ayırır
- Tire siyahı maddəsidir
- Boşluq sayılır, tab yox
- Faylın özü proqram işlətmir
Qısa nümunə
Bu, bir serverin adını və portunu yazır. Proqramı işə salmır.
name: nibras port: 8080
Tez-tez verilən suallar
- YAML və JSON eynidir? Xeyr. İkisi də ayar saxlaya bilər. JSON mötərizə işlədir. YAML girinti işlədir və şərh yazılır.
- YAML proqramlaşdırma dilidir? Xeyr. Faylı oxuyan proqram işi görür. YAML özü heç nə işlətmir.
- Tab ilə girinti olar? Xeyr. Girinti boşluqla yazılır. Tab oxuyanı dayandıra bilər.