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.