12r - Akıllı JavaScript Sistemi | Frontend Bölümü
Sonraki
JavaScript Mimarisi

Akıllı JavaScript Sistemi

38 modül, birbirine bağlı akıllı sistem. Player, favoriler, router ve daha fazlası.

Bu Ne İşe Yarar?

Web sitesinin "beyni"! Butona tıkladığınızda şarkının çalması, favorilere ekleme, sayfalar arası geçiş... Tüm bu etkileşimler JavaScript ile çalışır. 38 ayrı dosya var ama hepsi birbirleriyle konuşuyor, orkestra gibi uyum içinde çalışıyor.

Ana Modüller

Player Core Engine
player.js

Müzik çalmanın kalbi. Çal, duraklat, ileri, geri, ses ayarı. HLS stream desteği.

Favorites Sistemi
favorites.js

Favorilere ekle/çıkar. Anında kalp animasyonu. Sunucuyla senkron.

SPA Router
router.js

Sayfa yenilemeden gezinme. Müzik kesilmez, hızlı geçişler.

Device Profiler
device-profiler.js

Cihazı tanır: iPhone mu, Android mi? Hızlı mı, yavaş mı? Ona göre davranır.

Speed Tester
speed-tester.js

İnternet hızını ölçer. Yavaşsa düşük kalite, hızlıysa yüksek kalite stream.

Buffer Monitor
buffer-monitor.js

Önceden yükleme takibi. Takılma olmadan kesintisiz dinleme garantisi.

Alpine.js Store (Global Durum)

Tüm JavaScript modülleri aynı "hafızayı" paylaşır. Şu an çalan şarkı, kullanıcı bilgisi, tema tercihi... Her yerden erişilebilir, değiştiğinde herkes haberdar olur.

playerStore
Şu an çalan, kuyruk, durum
userStore
Kullanıcı, abonelik, tercihler
settingsStore
Ses, kalite, crossfade

Modül İstatistikleri

38
Toplam Modül
12
Player İlişkili
8
UI Modülü
6
Utility (Yardımcı)

Veri Akışı

Kullanıcı Tıklar
JS İşler
Sonuç Görünür
Reaktif Sistem

Veri değiştiğinde UI otomatik güncellenir. Manuel DOM manipülasyonu yok, hataya yer yok.

Bu Sayfanın Anahtar Terimleri

Module (Modül)
Bağımsız çalışabilen kod parçası. Her modül tek bir işe odaklanır.
SPA Router
Single Page Application yönlendirici. Sayfa yenilemeden içerik değiştirir.
Store (Depo)
Merkezi veri deposu. Tüm bileşenler buradan okur/yazar.
Alpine.js
Hafif JavaScript framework. Vue/React alternatifi, öğrenmesi kolay.

Arkaplanda Neler Çalışıyor?

JavaScript kodları yüklenip çalışırken arka planda şu işlemler gerçekleşir:

1. Bundle Yükleme

Vite ile derlenen app.js bundle'ı yüklenir. ES6 modülleri tek dosyada birleştirilmiştir. Tree-shaking ile kullanılmayan kodlar çıkarılmıştır. Gzip ile sıkıştırılmış halde gönderilir.

public/build/assets/app-[hash].js - ~150KB gzipped

2. IIFE Modül Yükleme

Player modülleri IIFE (Immediately Invoked Function Expression) pattern ile kapsüllenmiştir. Global scope'u kirletmez. Her modül kendi namespace'inde çalışır.

(function() { window.PlayerCore = { ... }; })();

3. Alpine.js Başlatma

DOMContentLoaded sonrası Alpine.start() çalışır. Tüm x-data direktifleri parse edilir, reactive proxy'ler oluşturulur. DOM mutasyonları izlenir ve otomatik re-render yapılır.

Alpine.data('player', () => ({ playing: false, ...methods }))

4. Event Bus Kurulumu

Modüller arası iletişim için CustomEvent sistemi kullanılır. document üzerinde pub/sub pattern uygulanır. Loosely coupled mimari sayesinde modüller birbirinden bağımsız çalışır.

document.addEventListener('player:play', handler)

5. Livewire Wire Binding

Livewire JS kütüphanesi wire: direktiflerini bulur ve AJAX event listener'ları bağlar. Form submit, click, input değişiklikleri otomatik olarak sunucuya gönderilir.

wire:click → Livewire.emit('methodName', params)
38 MODÜL
Bağlı Akıllı Sistem
player.js
favorites.js
router.js