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
6 yazı bulundu
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
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
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
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
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
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
Blog Haritası