Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
Angular'da Authentication State: Functional Guard'lar, Interceptor, Tek Seferlik Token Refresh ve UI Yetkilendirmesi
Angular'daki guard ve gizli butonlar güvenlik sınırı değil, kullanıcı deneyimidir; asıl karar API'de verilir. Signal tabanlı bir auth state service, canMatch guard'ları, permission directive'i, eşzamanlı 401'leri tek refresh'e bağlayan bir interceptor ve BroadcastChannel ile sekmeler arası çıkış yazıyor, hepsini Vitest ile sınıyor ve guard'ı atlayan bir isteğin API'de 403 aldığını gösteriyoruz.
Angular'da Unidirectional Data Flow: Signal, input/output ve Service'te State
Angular'da unidirectional data flow, state'in tek sahibinin olması, verinin input() ile aşağı inmesi, değişiklik isteklerinin output() ile yukarı çıkması ve türetilmiş değerlerin computed() ile hesaplanmasıdır. Effect ile yazılan state'in geride kaldığını, model()'in iş kuralını atlattığını ve default OnPush'un yerinde değiştirilen array'i görmediğini gerçek testlerle gösteriyor, state'i signal tutan bir service'e taşıyoruz.
Angular 20: Stable Signal API'leri, httpResource ve Yeni Dosya Adlandırma
Angular 20'de effect, toSignal ve linkedSignal stable oluyor, resource'ta request yerini params'a bırakıyor, httpResource geliyor, app.component.ts yerini app.ts'e veriyor ve *ngIf deprecated oluyor.
Angular 19: Varsayılan Standalone, linkedSignal ve resource() ile Veri Yükleme
Angular 19'da standalone: true yazmaya gerek kalmıyor. Birbirine bağlı state için linkedSignal'ı, veri yüklemek için deneysel resource() ve rxResource'u Angular 12 pattern'iyle kıyaslıyoruz.
Angular 18 Yenilikleri: Zoneless Change Detection, @let ve Stable Control Flow
Angular 18 ile gelen deneysel zoneless change detection'ı, stable olan control flow ve @defer'i, 18.1'deki @let'i, ng-content varsayılan içeriğini, form event'lerini ve redirect fonksiyonlarını anlatıyoruz.
Angular 17.x Yenilikleri: input(), model(), output() ve Signal Query'ler
Angular 17.1–17.3 ile gelen input(), input.required(), model(), output() ve viewChild()/viewChildren() signal query'lerini, Angular 12'deki @Input, @Output ve @ViewChild karşılıklarıyla yan yana anlatıyoruz.
Angular 16 Yenilikleri: Signals, Required Input ve takeUntilDestroyed
Angular 16 ile gelen signal, computed ve effect'i, toSignal/toObservable köprüsünü, required input ve transform'u, takeUntilDestroyed ile subscription temizliğini Angular 12 karşılaştırmasıyla anlatıyoruz.