Mert Özen Her Satırda Daha İleri

Blog

Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.

Seriler
7 yazı bulundu #yaml
jq ve yq Derinlemesine: Komut Satırında JSON ve YAML Sorgulamak, Dönüştürmek ve Düzenlemek
Geliştirici Araçları SERİ 06

jq ve yq Derinlemesine: Komut Satırında JSON ve YAML Sorgulamak, Dönüştürmek ve Düzenlemek

jq olmayan bir alanı hata değil null olarak döndürür ve boş sonuçta da 0 ile çıkar; CI'da koşul olarak kullandığın her filter'a -e ekle. Bookstore.Api, kubectl, dotnet list package ve GitHub API çıktılarıyla select, group_by, reduce inputs, --arg/--argjson ve @csv'yi; yq ile image tag'ini yorumları koruyarak güncellemeyi, iki farklı yq'yu ve Windows tırnaklamasını gerçek çıktılarla gösteriyoruz.

15 Kas 2026 13 dk 5
JSON Schema ile Configuration'ı Doğrulamak: Editor IntelliSense, SchemaStore ve CI'da Validation
Geliştirici Araçları SERİ 05

JSON Schema ile Configuration'ı Doğrulamak: Editor IntelliSense, SchemaStore ve CI'da Validation

.NET binder yazım hatalı bir ayar key'ini sessizce yok sayar; JSON Schema'da additionalProperties: false bu hatayı dosyayı yazarken ve CI'da yakalar. Bookstore.Api için 2020-12 şeması yazıp SchemaStore, VS Code eşlemesi, YAML şema yorumu, check-jsonschema, ajv ve JsonSchema.Net ile doğruluyor; draft karışıklığını ve format'ın her yerde kontrol edilmediğini gerçek çıktılarla gösteriyoruz.

15 Kas 2026 12 dk 7
TOML, INI, .env ve Diğerleri: Hangi Configuration Formatı Ne Zaman?
Geliştirici Araçları SERİ 04

TOML, INI, .env ve Diğerleri: Hangi Configuration Formatı Ne Zaman?

Dosyayı kimin okuyacağına göre seç: tek okuyucu .NET ise JSON ve environment variable yeterli, aynı .env'i birden fazla araç okuyorsa en katı ortak alt kümeyle yaz. Aynı .env'i Compose, Node.js, dotenv, python-dotenv ve bash'le; aynı INI'yi .NET, Python ve git'le okuyup farkları, TOML 1.1'in tarih tiplerini ve Bookstore.Api ayarının beş formatta tek configuration'a dönüşmesini gösteriyoruz.

15 Kas 2026 12 dk 6
YAML 2: Multiline String'ler, Anchor/Alias, Merge Key, Çoklu Doküman ve KYAML
Geliştirici Araçları SERİ 03

YAML 2: Multiline String'ler, Anchor/Alias, Merge Key, Çoklu Doküman ve KYAML

Script'i | ile, uzun metni > ile yaz; secret gibi tek satırlık değerlerde |- kullan, yoksa sona \n eklenir. Merge key (<<) YAML 1.2'de yok: Compose, kubectl ve kubeconform destekliyor, GitHub Actions desteklemiyor, js-yaml 5 ise ayar istiyor. Çoklu doküman, anchor'ın doküman sınırı, güvensiz tag'ler, KYAML ve Bookstore için bir yamllint kural setini gerçek çıktılarla gösteriyoruz.

15 Kas 2026 14 dk 6
YAML 1: Syntax, Tipler ve "Norway Problem": Bir YAML Dosyasını Doğru Okumak
Geliştirici Araçları SERİ 02

YAML 1: Syntax, Tipler ve "Norway Problem": Bir YAML Dosyasını Doğru Okumak

Tırnaksız bir YAML değerinin tipini parser'ın uyguladığı kural seti belirler: YAML 1.1'de NO false, 12:30 sayı, 0755 sekizlik; YAML 1.2'de üçü de farklı. PyYAML, ruamel.yaml, js-yaml, YamlDotNet, yq, Docker Compose ve kubectl'i aynı dosyayla çalıştırıp Bookstore'un compose.yaml ve Kubernetes manifest'indeki üç gerçek tip hatasını gösteriyoruz.

15 Kas 2026 13 dk 5
JSON'u Gerçekten Bilmek: RFC 8259, Sayı Hassasiyeti, Duplicate Key, JSONC, JSON5 ve JSON Lines
Geliştirici Araçları SERİ 01

JSON'u Gerçekten Bilmek: RFC 8259, Sayı Hassasiyeti, Duplicate Key, JSONC, JSON5 ve JSON Lines

RFC 8259 duplicate key'i ve sayı hassasiyetini tanımsız bıraktığı için aynı JSON'u Node.js, Python, jq ve .NET farklı okuyabiliyor: dördü de tekrar eden key'de sonuncuyu alıyor, 2^53'ten büyük ID'yi yalnız JavaScript yuvarlıyor. BOM, NaN, baştaki sıfır, appsettings.json'daki JSONC, JSON5 ve Bookstore sipariş export'unun JSON Lines hâlini gerçek çıktılarla gösteriyoruz.

15 Kas 2026 16 dk 5
Git Dostu API Client'ı: Bruno ile Collection'ı Repo'da Tutmak, OpenCollection YAML ve CLI ile CI'da Koşmak
Geliştirici Araçları SERİ 05

Git Dostu API Client'ı: Bruno ile Collection'ı Repo'da Tutmak, OpenCollection YAML ve CLI ile CI'da Koşmak

Bruno collection'ı OpenCollection YAML dosyaları olarak repo'da tutup GitHub Actions'ta Bruno CLI ile koşmak, istek değişikliklerini code review'da okunur bir diff'e çeviriyor. Bookstore için auth miras alan bir collection, OpenAPI ve Postman import'u (pm.variables.get'in bru.getVar'a yanlış çevrilmesi), .env ile secret'lar, assertion ve test script'leri, JUnit/HTML raporu, rapor klasörü olmayınca 2 dönen CLI ve YAML collection'ındaki .bru dosyasını sessizce atlayan run gerçek koşularla.

14 Kas 2026 13 dk 12
Blog Haritası