Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
JavaScript ve Ufuktaki Özellikler: TC39 Aşamaları, Temporal ve using
Bir özelliğin TC39 aşamalarından geçip dile girişini, Date'in sorunlarını çözen Temporal'ı (PlainDate, ZonedDateTime, Duration) ve using ile kaynak yönetimini Safari desteği notlarıyla öğreniyoruz.
JavaScript Web Components: Custom Elements, Shadow DOM ve Slot
customElements.define ile kendi HTML etiketimizi yazıyor, lifecycle callback'lerini ve observedAttributes'u öğreniyor, Shadow DOM, template ve slot ile framework'süz bir yıldızlı puan component'i kuruyoruz.
JavaScript Canvas ile Çizim: 2D Context, Animasyon ve Piksel Verisi
Canvas'ın 2D context'iyle şekil, yol, gradient ve metin çiziyor, görselleri piksel piksel işliyor, requestAnimationFrame ile animasyon döngüsü kuruyor ve retina ekranlarda bulanıklığı çözüyoruz.
JavaScript ile Dosya ve İkili Veri: File, Blob, ArrayBuffer ve Typed Array'ler
Kullanıcıdan input ve sürükle-bırak ile dosya alıyor, Blob ve File'ı okuyor, ArrayBuffer, typed array ve DataView ile byte'lara iniyor, ES2026'nın base64/hex method'larını ve dosya indirmeyi öğreniyoruz.
JavaScript Observer API'leri: Intersection, Mutation ve Resize Observer
IntersectionObserver ile lazy load ve sonsuz kaydırma kuruyor, MutationObserver ile DOM değişikliklerini, ResizeObserver ile element boyutunu izliyor ve observer'ları doğru temizlemeyi öğreniyoruz.
JavaScript Web Workers: postMessage, Transferable Objects ve Module Worker
Ağır işleri Web Worker ile ana thread'den çıkarıyor; postMessage ve structured clone'u, tek dosyada Blob URL worker'ı, transferable objects'i, module worker'ı ve worker'da DOM olmamasını öğreniyoruz.
JavaScript Performans İpuçları: Debounce, Throttle ve Layout Thrashing
performance.now, mark ve measure ile ölçmeyi, kendi debounce ve throttle fonksiyonumuzu, requestAnimationFrame'i, layout thrashing'i, lazy loading'i ve DevTools Performance sekmesini örneklerle öğreniyoruz.
JavaScript Bellek Yönetimi: Garbage Collection, Bellek Sızıntıları ve WeakRef
Stack ve heap'i, erişilebilirliği ve garbage collection'ı anlıyor; unutulan listener, timer, closure ve kopmuş DOM sızıntılarını, WeakMap, WeakRef ile DevTools'ta heap snapshot almayı öğreniyoruz.
JavaScript Proxy ve Reflect: Trap'ler, Doğrulama ve Reaktivite
Proxy ile bir object'e yapılan okuma, yazma ve silme işlemlerini yakalıyor, Reflect'le varsayılan davranışı koruyoruz. Doğrulama, varsayılan değer ve reaktif arayüz örnekleriyle tuzakları ve maliyeti görüyoruz.
JavaScript Async Iterator: for await...of, Async Generator ve Array.fromAsync
Symbol.asyncIterator ve async generator ile zaman içinde gelen veriyi geziyor, for await...of ve ES2026'nın Array.fromAsync'ini öğreniyor, sayfalı API'yi akış olarak okuyup ReadableStream'e giriş yapıyoruz.
JavaScript Iterator ve Generator: Symbol.iterator, yield ve Iterator Helper'lar
Iterable ve iterator protokolünü, Symbol.iterator ile kendi iterable'ını yazmayı, generator ve yield'in nasıl duraklayıp devam ettiğini, sonsuz dizileri, ES2025 iterator helper'larını ve ES2026'nın Iterator.concat'ini görüyoruz.
JavaScript İleri Asenkron Desenler: Promise.all Ailesi, İptal, Retry ve Timeout
Promise.all, allSettled, any ve race farkını, ES2024'ün Promise.withResolvers'ını, ES2025'in Promise.try'ını, kendi fonksiyonunda AbortSignal desteğini, retry, timeout ve eşzamanlılık sınırlamayı kodla görüyoruz.