JavaScript və NestJS-də Deklarativ Proqramlaşdırma

Müasir veb inkişaf dünyasında deklarativ proqramlaşdırma əsas paradiqmalardan birinə çevrilib — xüsusilə React, NestJS və müasir JavaScript ekosistemlərində.

Bəs “deklarativ yazmaq” əslində nə deməkdir? Və bu yanaşma kodun strukturunu, oxunaqlılığını və saxlanmasını necə yaxşılaşdırır — xüsusilə NestJS kimi backend frameworklərində?

Gəlin dərinləşək.

Deklarativ Proqramlaşdırma Nədir?

Sadə dildə desək:

Deklarativ proqramlaşdırma nəyi etmək istədiyini təsvir etməkdir, necə edəcəyini deyil.

Bunu imperativ proqramlaşdırma ilə müqayisə edin — burada nəticəyə çatmaq üçün addım-addım təlimatlar yazırsınız.

Deklarativ və İmperativ — JavaScript Nümunəsi

// İmperativ üslub
const numbers = [1, 2, 3, 4];
const doubled = [];
for (let i = 0; i < numbers.length; i++) {
doubled.push(numbers[i] \* 2);
}

// Deklarativ üslub
const doubled = numbers.map((n) => n \* 2);

🟩 İkinci versiya daha qısa, oxunaqlı və ifadəlidir.

NestJS-də Deklarativ Nümunələr

NestJS dekoratorlar, metadata və modulluluq üzərində qurulub — bu da təbii olaraq deklarativ kod üslubunu dəstəkləyir.

Gəlin bəzi ümumi NestJS nümunələrinə baxaq:

1. Routing və Kontrollerlər

@Get('users')
findAll(): User[] {
return this.userService.findAll();
}

Aşağı səviyyəli HTTP handler-ləri qurmaq əvəzinə @Get, @Post kimi dekoratorlarla marşrutları təsvir edirsiniz.

2. Asılılıqların Yerinə Qoyulması (Dependency Injection)

@Injectable()
export class UserService {
  constructor(private readonly repo: UserRepository) {}
}

Nest obyektin yaradılmasını və inject olunmasını özü idarə edir — siz instansiya yaratmağa ehtiyac duymursunuz.

3. Guard-lar, Pipe-lar, Interceptor-lar

@UseGuards(AuthGuard)
@UsePipes(ValidationPipe)
@UseInterceptors(LoggingInterceptor)

Davranış qatlarını deklarativ olaraq təsvir edirsiniz. Əl ilə funksiyaları wrap etməyə və ya icazə yoxlamaları yazmağa ehtiyac yoxdur.

NestJS-də Deklarativ Kodun Üstünlükləri

  • ✅ Daha təmiz struktur – dekoratorlar və metadata məqsədi aydın göstərir
  • ✅ Test etmək daha asandır – servislər və handler-lər ayrı-ayrılıqda test oluna bilər
  • ✅ Daha yaxşı genişlənmə – biznes məntiqi infrastruktura qarışmır
  • ✅ Oxunaqlıdır – xüsusilə yeni komanda üzvləri və kontribyutorlar üçün

Nə Zaman Həddindən Artıq Deklarativ Yazmaq Zərərlidir?

Hər şeyi deklarativ etmək düzgün deyil.

  • 🚫 Çoxlu dekorator = çaşdırıcı kod
  • 🚫 Gizli məntiq = debug prosesi çətinləşir
  • 🚫 Zəif abstraksiya = “sehrli” davranış

Həmişə aydınlıq və abstraksiyanı balansda saxlayın.

Nəticə

  • Deklarativ proqramlaşdırma sizə nə etmək istədiyinizi yazmağa imkan verir, necə deyil.
  • NestJS dekoratorlar, modullar və asılılıqların inject olunması vasitəsilə deklarativ üslubu təşviq edir.
  • Doğru istifadə olunarsa, bu yanaşma daha təmiz, genişlənəbilən və test ediləbilən backend tətbiqləri yaradır.

Resurslar

  • NestJS Sənədləri
  • İmperativ vs Deklarativ JavaScript
  • JavaScript-də Funksional Proqramlaşdırma

Rəylər