🔀 D5 · NestJS ↔ Spring Boot Karşılaştırması

D5 · NestJS ↔ Spring Boot: D1-D4'ü bitirdikten sonra bir Java geliştiricisi şunu fark eder: Nest, Express'in aksine, Spring'in **neredeyse doğrudan TypeScript çevirisidir** — `@M

D1-D4'ü bitirdikten sonra bir Java geliştiricisi şunu fark eder: Nest, Express'in aksine, Spring'in **neredeyse doğrudan TypeScript çevirisidir** — `@Module` ≈ `@Configuration`, `@Controller`/`@Get` ≈ `@RestController`/`@GetMapping`, DTO+`class-validator`+`ValidationPipe` ≈ Bean Validation+`@Valid`, Exception Filter ≈ `@RestControllerAdvice`, constructor injection ≈ Spring'in DI'ı. Peki üç framework'ü de gördükten sonra hangi soruyu sormalısın? "Hangisi daha iyi" değil — **"bu projenin ekibi ve ölçeği için hangi disiplin seviyesi doğru"** sorusunu. Küçük bir mikroservis/prototip için Express'in özgürlüğü hıza dönüşür; büyük, çok kişili bir takımda Nest'in (ve Spring'in) dayattığı yapı, "herkes aynı yerde arasın" tutarlılığı sağlar — bu, C6'daki "hangi hatanın kimin sorumluluğunda olduğu" sorusunun doğal devamıdır. Bir Java geliştiricisi için pratik sonuç: Nest'e geçiş, Express'e geçişten çok daha az "zihniyet değişikliği" gerektirir çünkü sınıflar, decorator'lar ve DI zaten TANIDIK kavramlardır — ama her ikisinde de gördüğün gibi, "decorator/annotation YAZMAK" ile "o decorator/annotation'ın GERÇEKTEN devrede olması" (global pipe/filter kaydı, modül kaydı) arasındaki fark, testerin asıl doğrulaması gereken şeydir.

Üç Framework, Aynı Sözleşme (Tekrar)

🎬 Java Geliştiricisi Nest'te Evinde Hissediyor

Spring: @Controller/@Service

Nest: @Controller/@Injectable

Express: fonksiyon zinciri

"Kayıtlı mı?" her zaman sorulur

Bir Java geliştiricisi Spring'deki `@Controller`, `@Service`, `@Valid` kavramlarına zaten alışkındır.

Nest'e geçince AYNI kavramları decorator adlarıyla görür — `@Controller`, `@Injectable`, `@Body()` — zihniyet mesafesi ÇOK KISADIR.

Express'e geçince ise "her şeyi elle kur" felsefesiyle karşılaşır — zihniyet mesafesi DAHA UZUNDUR (middleware sırası, elle okunan validation).

Ama HER üç framework'te de tekrar eden bir örüntü var: "yazmak" ile "gerçekten devrede olmak" arasında bir boşluk.

Ders — Framework ne olursa olsun tester her zaman "bu güvenlik/kural GERÇEKTEN kayıtlı/tetikleniyor mu?" diye sorar; sözdizimine değil, DAVRANIŞA güvenir.

Üç Frameworkte "Kayıt" Kavramını Karşılaştır

Component scan sınıfları otomatik bulur — genelde elle bir diziye eklemen gerekmez.