Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
JavaScript Prototype Zinciri: Object'ler Birbirinden Nasıl Miras Alır?
[[Prototype]] bağlantısını, zincirde property aramasını, __proto__ ile Object.getPrototypeOf farkını, constructor function, Object.create ve class'ın altında yatan prototype mekanizmasını konsolda adım adım çözüyoruz.
JavaScript Object Koruma ve Immutability: Property Descriptor, seal ve freeze
Property descriptor'ları, Object.defineProperty'nin sinsi varsayılanlarını, preventExtensions, seal ve freeze farkını, sığ ve derin dondurmayı ve object'leri değiştirmeden güncelleme desenlerini örneklerle görüyoruz.
JavaScript OOP Desenleri: Inheritance mı Composition mı? Factory Function ve Mixin
Inheritance'ın bedelini, composition ile davranış birleştirmeyi, factory function ve mixin'leri, closure ile #private arasındaki seçimi, JavaScript'e uyan SOLID ilkelerini ve ne zaman class yazmak gerektiğini konuşuyoruz.
JavaScript Event Loop Derinlemesine: Task, Microtask ve Rendering Sırası
Task ve microtask queue'larını, promise ve queueMicrotask'ın yerini, rendering adımında requestAnimationFrame'in ne zaman çalıştığını ve uzun task'ların sayfayı neden dondurduğunu çıktı sırası bulmacalarıyla çözü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.
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 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 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 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 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 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 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.