• Anasayfa
  • Eğitimler
    • JavaScript Eğitimi
    • Angular 2 Eğitimi
    • React.js Eğitimi
    • Java 8 Eğitimi
    • Java EE 7 Eğitimi
    • Spring Framework Eğitimi
    • Git Eğitimi
  • Online Eğitimler
    • Online React.js Eğitimi
    • Online Angular 2 Eğitimi
    • Online Spring Boot Eğitimi
  • Referanslar
  • Hakkında
  • İletişim
KodEduKodEdu
  • Anasayfa
  • Eğitimler
    • JavaScript Eğitimi
    • Angular 2 Eğitimi
    • React.js Eğitimi
    • Java 8 Eğitimi
    • Java EE 7 Eğitimi
    • Spring Framework Eğitimi
    • Git Eğitimi
  • Online Eğitimler
    • Online React.js Eğitimi
    • Online Angular 2 Eğitimi
    • Online Spring Boot Eğitimi
  • Referanslar
  • Hakkında
  • İletişim

YAML Nedir? Neden YAML Kullanmalıyız?

  • Posted by Rahman Usta
  • Categories Genel, Uncategorized, Yazılar
  • Date 31 Ağustos 2014

YAML dil bağımsız bir veri değişim formatıdır. Herhangi bir programlama dili ile oluşturulan nesneler,  YAML formatında kolaylıkla temsil edilebilmektedir. YAML geniş veri tipi desteği sayesinde tüm diller arasında ortak olarak kullanılabilir olmakla birlikte, ayrıca insan gözüyle bakıldığında kolay okunabilir bir yapısı mevcuttur.

YAML ile kompleks nesne yapıları temsil edilebileceği gibi, konfigürasyon amaçlı kullanılan formatlara alternatif olarak da kullanılabilmektedir (Örneğin: .xml, .json,  .properties biçimleri).

YAML vs XML vs JSON

XML yazılım sektöründe yaygın olarak kullanılan bir teknoloji. Birçok kullanım alanı olmakla birlikte, kompleks nesnelerin temsil edilmesi, konfigürasyon amaçlı olarak kullanılması en yaygın kullanım biçimidir. Örneğin: Java ekosisteminde konfigürasyon amaçlı bilgiler ağırlıklı olarak XML dosyalarında tutulmaktadır.

JSON formatı da, hem kompleks nesnelerin temsili hem de konfigürasyon amaçlı olarak kullanılan bir veri temsil edici biçimdir. Örneğin: JavaScript ekosisteminde konfigürasyon amacıyla ağırlıklı olarak JSON biçimli dosyalar kullanılmaktadır.

XML formatı, ne insan gözüyle kolay okunabilirdir, ne de insan eliyle kolay yazılabilirdir. JSON formatı ise, insan gözüyle kolay okunabilirdir fakat insan eliyle o kadar da kolay yazılabilir değildir. YAML formatı ise,  bu iki formata göre insan gözüyle daha kolay okunabilir ve insan eliyle daha kolay yazılabilir bir sözdizimi sunmaktadır

Örneğin;

Aşağıda sırasıyla 3 farklı formatta XML, JSON ve YAML örneği yer almaktadır. Bu 3 örnek de aynı veri düzenini barındırmaktadır. Görüldüğü üzere XML biçimi oldukça komleks, ne kolay okunabilir ne de kolay yazılabilir.


<?xml version="1.0" encoding="UTF-8" ?>
<root>
    <language>java</language>
    <jdk>oraclejdk8</jdk>
    <os>linux</os>
    <script>mvn clean install</script>
    <before_script>sudo apt-get update -qq</before_script>
    <before_script>sudo apt-get install -y rpm</before_script>
    <deploy>
        <provider>releases</provider>
        <skip_cleanup>true</skip_cleanup>
        <on>
            <tags>true</tags>
            <all_branches>true</all_branches>
            <repo>rahmanusta/AsciidocFX</repo>
        </on>
    </deploy>
</root>

JSON biçimi ise XML'e göre gerçekten kolay okunabiliyor. Fakat yazım sırasındaki {} [] "" , karakterlerini sıkça yazmak yazımı biraz zorlaştırıyor.

{
    "language": "java",
    "jdk": [
        "oraclejdk8"
    ],
    "os": [
        "linux"
    ],
    "script": "mvn clean install",
    "before_script": [
        "sudo apt-get update -qq",
        "sudo apt-get install -y rpm"
    ],
    "deploy": {
        "provider": "releases",
        "skip_cleanup": true,
        "on": {
            "tags": true,
            "all_branches": true,
            "repo": "rahmanusta/AsciidocFX"
        }
    }
}

YAML formatı ise oldukça sade, hem kolay okunabiliyor hem de kolay yazılabiliyor. Ayrıca satır sayısı olarak genelde daha az yer kaplıyor.

language: java
jdk:
- oraclejdk8
os:
- linux
script: mvn clean install
before_script:
- sudo apt-get update -qq
- sudo apt-get install -y rpm
deploy:
  provider: releases
  skip_cleanup: true
  on:
    tags: true
    all_branches: true
    repo: rahmanusta/AsciidocFX

Not: XML, JSON, YAML arası dönüşümleri http://codebeautify.org/yaml-to-json-xml-csv adresinden deneyimleyebilirsiniz.

YAML vs Properties File

Property dosyaları Java ekosisteminde kullanılan, konfigürasyon dosyalarıdır. Property dosyaları hem kolay okunabilir hem de kolay  yazılabilirdir. Fakat, properties dosyalarında veriler sadece key -> value biçiminde (map, associative array) tutulabilmektedir. Bu da properties dosyalarının kullanım alanını sınırlı kılmaktadır.

YAML formatı ise verileri hem key -> value biçiminde hem de dizi biçiminde hem de istenilen derinlikte tutabilmektedir. Bu avantajlı noktalardan bakıldığında, YAML formatı Properties dosyalarına iyi bir alternatif olarak karşımıza çıkmaktadır.

Sizler de YAML biçimini kullandığınız programlama diliyle birlikte kullanabilirsiniz.

Tekrar görüşmek dileğiyle..

  • Share:
author avatar
Rahman Usta
Kodedu.com bünyesinde eğitim ve danışmanlık faaliyetleri sürdüren Rahman Usta, 2012 yılında yayına çıkan popülerJava Mimarisiyle Kurumsal Çözümler ve 2014 yılında yayınlanan Java 8 Ebook kitaplarının yazarıdır. Açık kaynak dünyasına katkı veren yazar, geliştirdiği AsciidocFX projesiyle Duke's Choice Award 2015 ödülünü kazanmıştır. Rahman ayrıca, Istanbul JUG'un ve Java standartlarını geliştiren JCP (Java Community Process)'in bir üyesidir. 2018 yılında Java Şampiyonu olarak seçilmiştir.

Previous post

Java Collection API ve Big O Notasyonu
31 Ağustos 2014

Next post

Java EE 8 ile yeni MVC Framework geliyor
3 Eylül 2014

You may also like

api-logo
Swagger Nedir? Neden kullanılır?
10 Ekim, 2018
spring-cli-logo
Spring CLI ile Spring Boot Projeleri Hazırlamak
21 Ağustos, 2017
eureka_architecture
Spring Cloud Netflix ve Eureka Service Discovery
3 Temmuz, 2017

    3 Comments

  1. Enes Açıkoğlu
    8 Aralık 2016
    Cevapla

    yazı : harika
    içerik : süper
    sonuç : elinize sağlık

  2. shahriyar
    27 Aralık 2020
    Cevapla

    çok teşekkür edirm bilgiler için. iyiki varsınız

Leave A Reply Cevabı iptal et

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

E-posta listesine kayıt olun!






Gözde yazılar

Dağıtık Versiyon Kontrol Sistemleri
13Ağu2012
JaxRS 2 – HTML 5 SSE (Server Sent Events)
04Tem2013
Slayt hazırlarken nelere dikkat etmeliyiz?
18May2015
Apache Tika : Dosya tipi nasıl tespit edilir?
18Ara2013

Son Yazılar

  • Java’da Record’lar 27 Ocak 2020
  • Swagger Nedir? Neden kullanılır? 10 Ekim 2018
  • Spring CLI ile Spring Boot Projeleri Hazırlamak 21 Ağustos 2017
  • Spring Cloud Netflix ve Eureka Service Discovery 3 Temmuz 2017
  • Online React.js Eğitimi ardından (15-25 Mayıs 2017) 31 Mayıs 2017

Son Yorumlar

  • YAML Nedir? Neden YAML Kullanmalıyız? için shahriyar
  • Java Persistence API Nedir? (Giriş) için Utku
  • Java 8 – CompletableFuture ile Asenkron Programlama için Rahman Usta
  • Java 8 – CompletableFuture ile Asenkron Programlama için burak
  • Arm7 Nxp 2104 işlemci ile basit bir Uygulama için Mustafa Dinc

Get Java Software

Arşivler

Bizi takip edin

React.js Eğitimi Başlıyor
11-22 Eylül, 2017
Eğitmen
Rahman Usta
İletişim

merhaba@kodedu.com

  • Hakkında
  • Gizlilik Politikası
  • İletişim
  • Referanslar
Kodedu Bilişim Danışmanlık
Cemil Meriç mah. Çelebi sok.
No:16/3 Ümraniye/İSTANBUL
Tel: 0850 885 38 65
Alemdağ V.D.: 8960484815

KODEDU © Tüm hakları saklıdır.