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