<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Angular on @ozgurvurgun</title><link>https://ozgurvurgun.github.io/angular/</link><description>Recent content in Angular on @ozgurvurgun</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><copyright>ozgurvurgun</copyright><lastBuildDate>Sun, 27 Jul 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://ozgurvurgun.github.io/angular/index.xml" rel="self" type="application/rss+xml"/><item><title>What is Angular</title><link>https://ozgurvurgun.github.io/angular/1-what-is-angular/</link><pubDate>Tue, 15 Jul 2025 00:00:00 +0000</pubDate><guid>https://ozgurvurgun.github.io/angular/1-what-is-angular/</guid><description>Angular&amp;rsquo;ın Felsefesi ve Paradigması Angular bir &amp;ldquo;framework&amp;quot;tür, bir &amp;ldquo;library&amp;rdquo; değil. Bu şu anlama gelir:
Ne yapman gerektiğini değil, nasıl yapman gerektiğini söyler. Bir yapı ve düzen silsilesi sunar. Geliştirici özgürlüğünü azaltır ama büyük ölçekli projelerde tutarlılık, test edilebilirlik ve bakım kolaylığı sağlar. Paradigması Component-Based Architecture (React ile benzer) Declarative Template Syntax (HTML içinde Angular&amp;rsquo;ın syntax&amp;rsquo;ı kullanılabilir, bildiğin template engine işte) Two-Way Data Binding (Kısaca UI ile JS arasına kablo çekmişler, değişkende bir değişiklik olunca anında UI değişiyor; aynı şekilde UI’da bir değişiklik olunca değişken güncelleniyor gibi bir şey) Dependency Injection (Bağımlılık sokuşturma) RxJS ile Reactive Programming (Kısaca bir veri kaynağında bir değişiklik olunca bu otomatik bir zincirleme reaksiyonu tetikliyor, bir şeyler yapılıyor.</description></item><item><title>Initially</title><link>https://ozgurvurgun.github.io/angular/2-initially/</link><pubDate>Mon, 14 Jul 2025 00:00:00 +0000</pubDate><guid>https://ozgurvurgun.github.io/angular/2-initially/</guid><description> Angular CLI NodeJs üzerinde çalışır öncelikle NodeJs kurmalı.
npm install -g @angular/cli cd ~/Projects # or... ng new my-app Bir kaç soru soracak sistem tasarımına göre bunlara cevap ver.
ng serve --port 4200 Hayırlı olsun Angular ayağa kalkmış olmalı. Angular CLI komutları hakkında bilgi almak istersen ng help komutunu kullan.</description></item><item><title>First Component</title><link>https://ozgurvurgun.github.io/angular/3-first-component/</link><pubDate>Mon, 14 Jul 2025 00:00:00 +0000</pubDate><guid>https://ozgurvurgun.github.io/angular/3-first-component/</guid><description>Angular ile yeni bir component oluşturmak için şu komutu verirsin
ng generate component first or
ng g c first bu kadar :)</description></item><item><title>Directive</title><link>https://ozgurvurgun.github.io/angular/4-directive/</link><pubDate>Tue, 15 Jul 2025 00:00:00 +0000</pubDate><guid>https://ozgurvurgun.github.io/angular/4-directive/</guid><description>Bir düşünelim: HTML temelde birr takım verinin semantik şekilde gösterilemsinden ibaret. Bir noktada bu statik yapıya takla attrmak istiyorsun. &amp;ldquo;Bu elementi sadece bazı durumlarda göster&amp;rdquo;, &amp;ldquo;Şuna tıklandığında şu davranış tetiklensin&amp;rdquo;, &amp;ldquo;Şu div&amp;rsquo;i mavi yap ama bazı senaryolarda yeşil olsun&amp;rdquo; falan diyorsun.
Bir noktada bu davranışların soyutlanması icap ediyor. Yani sadece ne göreceğini değil, nasıl davranacağını da kontrol etmek istiyorsun.
Bu meta programlama dediğimiz yaklaşımın ilk adımıdır:
&amp;ldquo;Kodu kodla şekillendirme işi&amp;rdquo;</description></item><item><title>Service</title><link>https://ozgurvurgun.github.io/angular/5-service/</link><pubDate>Thu, 17 Jul 2025 00:00:00 +0000</pubDate><guid>https://ozgurvurgun.github.io/angular/5-service/</guid><description>Angular Service Nedir? Angular Service dediğimiz şey, uygulamada ortaklaşa kullanılan işleri ve verileri tek bir yerde toplayan TypeScript sınıflarıdır. Misal:
API&amp;rsquo;den veri çekmek Bileşenler arasında veri paylaşmak Ortak bir hesaplama, filtreleme, validasyon işlemini yapmak gibi işler için service yazarsın. Böylece aynı kodu her component’te yeniden yazmazsın.
Ne Diye Service Denen Zımbırtıları Kullanıyoruz? Bir örnek: Hem AComponent hem BComponent aynı veriyi kullanmak istiyor. Gidip her birine ayrı ayrı veri koyarsan kopukluk olur.</description></item><item><title>Pipe</title><link>https://ozgurvurgun.github.io/angular/6-pipe/</link><pubDate>Wed, 23 Jul 2025 00:00:00 +0000</pubDate><guid>https://ozgurvurgun.github.io/angular/6-pipe/</guid><description>Pİie Nedir? Neden Vardır? Şöyle düşün: Bir değerin ham hali ile gösterilecek hali genellikle aynı değildir.
Tarih formatı farklı gösterilsin istersin. Sayının sonuna TL, $ gibi birim gelsin istersin. Tüm harfleri büyük/küçük yapmak istersin. listeyi filtrelemek, slice etmek istersin. Bunların hepsini component içinde yapmak mümkün. Ama zamanla kod şişer, tekrar eder, okunmaz hale gelir.
Angular burada şöyle der:
Veri değişmeyecek. Sadece görüntüsü değişecekse, o zaman bunu HTML&amp;rsquo; de hallet.
Bu yaklaşımın adı: Pipe</description></item><item><title>Guard</title><link>https://ozgurvurgun.github.io/angular/7-guard/</link><pubDate>Wed, 23 Jul 2025 00:00:00 +0000</pubDate><guid>https://ozgurvurgun.github.io/angular/7-guard/</guid><description>Guard Nedir? Neden Var? Şöyle düşün:
Bir apartman giriş kapısı var ama herkese açık değil. Kapıda bir güvenlik görevlisi var ve sana sorular soruyor:
Kimsin? Giriş iznin var mı? Bu kata çıkabilir misin? Bu daireye özel yetkin var mı? İşte bu Angular Gaurd tam olarak bu işi yapar. Uygulamanın rotaları arasında geçiş yapılırken kim geçebilir, kim geçemez sorularına cevap verir.
Guard Ne İş Yapar? Angular&amp;rsquo;daki Router sistemi sayesinde sayfalar arasında geziniriz (/login, /dashboard, /admin vs).</description></item><item><title>Componentler Arası Veri Akışı</title><link>https://ozgurvurgun.github.io/angular/8-componentler-arasi-veri-akisi/</link><pubDate>Wed, 23 Jul 2025 00:00:00 +0000</pubDate><guid>https://ozgurvurgun.github.io/angular/8-componentler-arasi-veri-akisi/</guid><description>Angular&amp;rsquo;da Bileşenler Konuşur mu? Bileşenlerinizi oluşturuyorsunuz:
AppComponent NavbarComponent UserCardComponent TodoListComponent Ama bir sorun var: Bunlar yalnızca görüntü mü veriyor, yoska birbirleriyle konuşabiliyorlar mı? Cevap: Evet konuşabilirler. Ama sadece belirli yollarla.
Angular&amp;rsquo;ın Felsefesi: Tek Yönlü Veri Akışı Angular&amp;rsquo;da veri akışı: Parent ➡️ Child
Yani üst bileşen, alt bileşene veri gönderir. Tersini yapmak istersen, child bileşen sadece bir event fırlatabilir.
&amp;ldquo;Benim içimde bir şey oldu, haberin olsun&amp;rdquo; der.
Bu mekanizma için 2 araç kullanırız:</description></item><item><title>Service Injection ve Dependency Injection (DI) felsefesi</title><link>https://ozgurvurgun.github.io/angular/9-service-injection-ve-dependency-injection-felsefesi/</link><pubDate>Wed, 23 Jul 2025 00:00:00 +0000</pubDate><guid>https://ozgurvurgun.github.io/angular/9-service-injection-ve-dependency-injection-felsefesi/</guid><description>Neden Kodu Parçalamak Yetmez? Diyelim ki bir bileşen, API&amp;rsquo;den veri çekiyor:
export class UserComponent { constructor() { fetch(&amp;#39;https://api.example.com/users&amp;#39;) .then(res =&amp;gt; res.json()) .then(data =&amp;gt; this.users = data); } } Çalışıyor mu? Evet.
Ama test edilebilir mi? Hayır. Başka yerde tekrar kullanılabilir mi? Hayır. API değişirse ne olacak? Her yeri mi değiştireceğiz? Evet. Yani: felaket. İşte bu yüzden yazılım mühendisi emmiler şöyle der:
Bileşenler ihtiyaçlarını kendi üretmemeli, dışarıdan almalı.
Dependency Injection Nedir? Dependency Injection, bir sınıfın ihtiyaç duyduğu şeyleri (servis, veri, yapı) kendi içinde üretmek yerine, dışarıdan alması prensibidir.</description></item><item><title>Angular’da API İstekleri ve HttpClient Kullanımı</title><link>https://ozgurvurgun.github.io/angular/10-angularda-api-istekleri-ve-httpclient-kullanimi/</link><pubDate>Fri, 25 Jul 2025 00:00:00 +0000</pubDate><guid>https://ozgurvurgun.github.io/angular/10-angularda-api-istekleri-ve-httpclient-kullanimi/</guid><description>Angular&amp;rsquo;da API ile Konuşmak: HttpClient Bir frontend uygulaması coğu zaman tek başına bir frontend değildir. Backend ile konuşur, veri çeker, gönderir, günceller.
Angular&amp;rsquo;da bu işi yapmak için HttpClient servisi kullanılır.
Angular&amp;rsquo;da HTTP demek, HttpCLient demektir.
HttpClient Nedir? Angular bize @angular/common/http paketiyle gelen HttpClient sınıfını sunar.
Bununla şunları yapabilirsin:
GET, POST, PUT, DELETE, gibi HTTP istekleri atmak Header, query param, body gibi seçenekler eklemek RxJS sayesinde asenkron istekleri yönetmek Interceptor&amp;rsquo; larla istek öncesi/sonrası işlemler eklemek Ama önce HttpClientModule&amp;rsquo; ü app module&amp;rsquo;e dahil etmelisin:</description></item><item><title>Angular Forms – Template vs Reactive</title><link>https://ozgurvurgun.github.io/angular/11-angular-forms-template-vs-reactive/</link><pubDate>Fri, 25 Jul 2025 00:00:00 +0000</pubDate><guid>https://ozgurvurgun.github.io/angular/11-angular-forms-template-vs-reactive/</guid><description>Giriş: Form Nedir? Sadece Input mu? Form = Kullanıcıdan veri almak. Ama sadece &amp;lt;input /&amp;gt; koymakla iş bitmez. İhtiyacın olan şey:
Validasyon (giriş kontrolü) Veri toplama Dinamik alanlar (birden fazla e-posta vs.) Submit işlemi Temizleme, resetleme Form state takibi (dirty, touched, valid&amp;hellip;) İşte Angular burada iki yol sunar: Template-Driven ve Reactive Forms
Angular’ın Bakışı: “Form bir bileşen değil, bir state’tir.” Bir input&amp;rsquo;a sadece veri bağlamazsın.
Değeri ne? Değişti mi? Hata var mı?</description></item><item><title>RxJS ve Angular’da Reaktif Programlama</title><link>https://ozgurvurgun.github.io/angular/12-rxjs-ve-angularda-reaktif-programlama/</link><pubDate>Wed, 23 Jul 2025 00:00:00 +0000</pubDate><guid>https://ozgurvurgun.github.io/angular/12-rxjs-ve-angularda-reaktif-programlama/</guid><description>Reaktif programlama Nedir? Şöyle düşün:
Bir şey değiştiğinde, başka bir şey otomatik değişsin istiyorum
Bu fikir temel olarak reaklam panosuna benzer. Panoya fiyatı asarsın, her yerde o fiyat görünür. Ama panoya yeni fiyatı yazdığında tüm afişler otomatik güncellenir.
Buna veri akışına tepki verme yani reaktif olma denir.
RxJS Nedir? RxJS, &amp;ldquo;Reactive Extensions for JavaSript&amp;rdquo; anlamına gelir. Yani: &amp;ldquo;JavaScript&amp;rsquo;e reaktif yetenek ekleyelim&amp;rdquo; projesidir.
Angular, fromdan HTTP&amp;rsquo;ye router&amp;rsquo;dan event&amp;rsquo;lere kadar her şeyi Observable sistemiyle yönetir.</description></item><item><title>Lazy Loading</title><link>https://ozgurvurgun.github.io/angular/13-lazy-loading/</link><pubDate>Wed, 23 Jul 2025 00:00:00 +0000</pubDate><guid>https://ozgurvurgun.github.io/angular/13-lazy-loading/</guid><description>Lazy Loading Nedir? Lazy Loading, Türkçesiyle tembel yükleme, uygulamamızdaki bazı modülleri ilk başta yüklememek, sadece ihtiyaç duyulduğunda (örn. bir route ziyaret edildiğinde) yüklemek demektir.
Ana fikir:
“Her şeyi başta yükleme, kullanıcı neye tıklarsa onu getir.”
Neden Lazy Loading? Angular projeleri büyüdükçe, bundle (paket) boyutu artar. Bu neye yol açar?
İlk yükleme süresi uzar Kullanıcı daha uygulamayı görmeden bile MB’larca veri iner Özellikle mobil kullanıcılar için felaket olabilir Lazy Loading buna çare olur:</description></item><item><title>Signals</title><link>https://ozgurvurgun.github.io/angular/14-signals/</link><pubDate>Sat, 26 Jul 2025 00:00:00 +0000</pubDate><guid>https://ozgurvurgun.github.io/angular/14-signals/</guid><description>Angular Signals - Yeni Nesil Reaktivite Neden Böyle Bir Yapıya İhtiyaç Duyuldu?
Angular uzun yıllardır reaktif programlama ihtiyaçlarını karşılamak için RxJS kütüphanesini kullanıyordu. Observable Subject pipe map switchMap subscribe unsubscribe gibi yapılar bu sistemin parçalarıydı.
Ancak bu yapı:
Öğrenilmesi karmaşık Hatalara açık Basit senaryolarda gereksiz yere ağır hale gelebiliyordu. Angular ekibi bu sebeple daha basit, daha doğal, daha az kodla daha çok şey yapılabilen bir yapı üzerinde çalıştı. Ve Signal ortaya çıktı.</description></item><item><title>angular.json</title><link>https://ozgurvurgun.github.io/angular/15-angular.json/</link><pubDate>Sun, 27 Jul 2025 00:00:00 +0000</pubDate><guid>https://ozgurvurgun.github.io/angular/15-angular.json/</guid><description>Bu Dosya Nedir? angular.json, bir Angular projesinin yapılandırma dosyasıdır. Angular CLI, bu dosyaya bakarak:
Projenin nerede başladığını Hangi derleyici ayarlarının kullanılacağını Build, test, lint, serve komutlarında ne yapılacağını Uygulama yollarını, stilleri, scriptleri gibi yüzlerce detayı öğrenir ve uygular.
Bu dosya olmadan Angular CLI, projeyi nasıl çalıştıracağını bilemez.
angular.json Nerede Bulunur? Her Angular projesinde, projenin kök dizininde bulunur:
/app ├── src/ ├── angular.json ├── package.json ├── tsconfig.json angular.json’un Genel Yapısı { &amp;#34;$schema&amp;#34;: &amp;#34;.</description></item><item><title>Zoneless Nedir?</title><link>https://ozgurvurgun.github.io/angular/16-zoneless-nedir/</link><pubDate>Sun, 27 Jul 2025 00:00:00 +0000</pubDate><guid>https://ozgurvurgun.github.io/angular/16-zoneless-nedir/</guid><description>Angular deyince akla genelde component’ler, service’ler falan gelir ama içerde bir mimari var ki, senin haberin bile olmadan bütün uygulamanın kaderini etkiliyor:
Zone.js Bu yazıda Zone.js nedir, ne iş yapar, neden Angular artık onsuz olmaya çalışıyor ve bu neye çare olabilir… hepsine tek tek gireceğiz.
Zone.js Nedir? Kısaca:
Zone.js, JavaScript&amp;rsquo;teki async olayları izleyen bir kütüphanedir.
Yani sen setTimeout, fetch, Promise, addEventListener falan kullandığında, Angular’ın &amp;ldquo;bir şey oldu galiba&amp;rdquo; deyip yeniden UI güncellemesi yapmasını sağlar.</description></item><item><title>Internationalization ve Localization - Angular Çok Dillilik Meselesi</title><link>https://ozgurvurgun.github.io/angular/17-internationalization-localization/</link><pubDate>Sun, 27 Jul 2025 00:00:00 +0000</pubDate><guid>https://ozgurvurgun.github.io/angular/17-internationalization-localization/</guid><description>Uygulamanı yazdın, harika çalışıyor. Ama bir gün Product Manager gelip şöyle diyor:
Yani uygulama çok güzel ama&amp;hellip; bunu Almanca da yapabilir miyiz?
Yani &amp;ldquo;Kullanıcıya Giriş Yap değil de Anmelden yazsın.
Senin iç sesin:
Hay aq&amp;hellip; O kadar JSON&amp;rsquo;u kim yazacak, her yere this.text = translations[this.currentLang][&amp;ldquo;blabla&amp;rdquo;]; diye mi koyacağım
Ama korkma dostum, Angular bu konuda çözümler sunmuş.
Önce Temel Kavramları Oturtalım | Terim | Anlamı | | ------------------------------- | -------------------------------------------------------------------- | | Internationalization (i18n) | Uygulamanı çok dilli hale getirme hazırlığıdır.</description></item><item><title>Monorepo Nedir?</title><link>https://ozgurvurgun.github.io/angular/18-monorepo-nedir/</link><pubDate>Sun, 27 Jul 2025 00:00:00 +0000</pubDate><guid>https://ozgurvurgun.github.io/angular/18-monorepo-nedir/</guid><description>Ne Bu Monorepo? Projeyi yazıyorsun, her şey yolunda. Sonra ekip büyüyor. Frontend bir yerde, backend başka yerde, ortak UI bileşenleri başka bir repo’da&amp;hellip;
Bir noktada kendini şöyle derken buluyorsun:
Abi şu ui-kit’i güncelledim ama 3 farklı repo’da aynı şeyi elle publish’lemek zorundayım
İşte burada Monorepo devreye giriyor.
Monorepo = Tüm projelerini, kütüphanelerini, app’lerini tek bir Git deposunda toplamak.
Tek repo. Tek hayat. Çok huzur (doğru kullanılırsa).
Polyrepo vs Monorepo | Özellik | Polyrepo | Monorepo | | ------------------- | --------------------------- | ------------------------------ | | Kod yapısı | Her proje ayrı repo | Her şey tek repo içinde | | Versiyonlama | Her repo kendi içinde | Ortak versiyon yönetimi | | Ortak kod paylaşımı | Zor, publish gerekebilir | import ile direkt erişim | | CI/CD | Her repo için ayrı pipeline | Ortak config ile yönetilebilir | | Bağımlılık takibi | Dağınık | Merkezi | Ne Zaman Lazım Olur?</description></item></channel></rss>