Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
JavaScript İleri Asenkron Pattern'lar: 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 concurrency sınırlamayı kodla görüyoruz.
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 OOP Pattern'ları: 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 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ı, shallow ve deep freeze'i ve object'leri değiştirmeden güncelleme pattern'larını örneklerle görüyoruz.
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 İleri Tarih İşlemleri: Saat Dilimleri, UTC ve Intl ile Biçimlendirme
Date'in tek bir an tuttuğunu, UTC ve ISO 8601 kurallarını, Intl.DateTimeFormat seçeneklerini, Intl.RelativeTimeFormat ile "3 gün önce"yi, yaz saati tuzağını ve Temporal'a ön bakışı ele alıyoruz.
JavaScript Module'leri Tarayıcıda: import, export, Dynamic import() ve Import Maps
type="module" ile ilk module'ü yazıyor, file:// neden çalışmaz görüyor, named ve default export'u, live binding'i, dynamic import()'u, import maps'i ve ES2025'in JSON module'lerini öğreniyoruz.
JavaScript URL, URLSearchParams ve History API: Sayfayı Yenilemeden Adres Yönetimi
URL ve URLSearchParams ile adresi parçalamayı, hash'i, pushState ile replaceState farkını, popstate'in ne zaman geldiğini öğreniyor ve framework'süz küçük bir SPA router'ı yazıyoruz.
JavaScript Web Storage ve Cookie: localStorage, sessionStorage ve document.cookie
localStorage ile sessionStorage farkını, JSON ile object saklamayı, sekmeler arası storage event'ini, kota ve güvenlik sınırlarını, cookie attribute'larını ve HttpOnly'nin neden görünmediğini anlatıyoruz.
JavaScript İleri Formlar: FormData, Constraint Validation API ve Fetch
form.elements ve FormData ile değerleri toplamayı, validity ve setCustomValidity ile kendi kurallarını yazmayı, invalid event'ini yakalamayı ve formu sayfa yenilenmeden fetch ile göndermeyi öğreniyoruz.
JavaScript Gelişmiş Event'ler: Bubbling, Capturing, Event Delegation ve CustomEvent
Event'in capturing, target ve bubbling aşamalarını, stopPropagation'ı, tek listener'la event delegation'ı, once/passive/signal seçeneklerini, CustomEvent'i ve pointer event'lerini örneklerle görüyoruz.
JavaScript ile Gelişmiş DOM: Gezinme, closest, dataset, template ve Toplu Güncelleme
DOM ağacında parent/children/sibling ve closest ile geziniyor; dataset, insertAdjacentHTML, DocumentFragment, template, cloneNode ve getBoundingClientRect'i görüyor, reflow'a girip toplu güncelleme yapıyoruz.