• 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
KodEdu
  • 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 Kodedu
  • 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
Kodedu

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

    4 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

  3. kara
    21 Mart 2022
    Cevapla

    Guzel, acik ve anlasilir. Dzienque

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

Webiner : Java 8 | Project Lambda
07Ara2012
Java EE 8 için yeni plan yolda!
13Eki2016
Swagger Nedir? Neden kullanılır?
10Eki2018
Upucuz ARM Geliştirme Kiti – Kinetis KL25Z
01Eyl2012

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

  • Coupling ve Cohesion Kavramları Nedir? için Hilal
  • Naïve Bayes Sınıflandırma Algoritması için Rahman Usta
  • Naïve Bayes Sınıflandırma Algoritması için Mete
  • YAML Nedir? Neden YAML Kullanmalıyız? için kara
  • JWT (JSON Web Tokens) Nedir? Ne işe yarar? için Furkan

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.