Abubakr404
عودة إلى المدونة

CQRS مع NestJS: دليل عملي بلا تعقيد

22 أبريل 20267 دقائق قراءة
NestJSCQRSBackendPostgreSQL

جوهر CQRS

ببساطة، يفصل CQRS بين الأوامر (الكتابة) والاستعلامات (القراءة). في NestJS، توفر حزمة @nestjs/cqrs ناقل أوامر CommandBus وناقل استعلامات QueryBus — وهذا كل ما تحتاجه للبدء.

الهيكلة التي أستخدمها

modules/articles/
├── articles.module.ts
├── articles.controller.ts
├── dto.ts
├── commands.ts   # أصناف الأوامر ومعالجاتها
└── queries.ts    # أصناف الاستعلامات ومعالجاتها

تبقى المتحكمات بسيطة: تتحقق من المدخلات عبر DTO ثم ترسلها إلى الناقل.

لماذا العناء؟

  • قابلية الاختبار — المعالجات أصناف صغيرة بمهمة واحدة.
  • الوضوح — كل تغيير في حالة النظام له أمر مسمّى.
  • مسار النمو — عندما تحتاج الأحداث أو نماذج قراءة منفصلة، تكون الفواصل جاهزة.

متى تتجاوزه؟

خدمة CRUD بثلاث نقاط وصول لا تحتاج CQRS. اعتمده عندما يبدأ منطق نطاقك بالتفرع — وليس قبل ذلك.

CQRS مع NestJS: دليل عملي بلا تعقيد | أبوبكر هشام — مطوّر ويب متكامل