CodeShot
Seniorسختی 3 از ۵· در 72٪ مصاحبه‌های این حوزه پرسیده شده

CQRS چیست و چه مشکلی را حل می‌کند؟

نشان کردن

پاسخ کوتاه

CQRS (Command Query Responsibility Segregation) مسیر کد خواندن و نوشتن داده را از هم جدا می‌کند تا هرکدام مستقل بهینه‌سازی و توسعه یابند.

پاسخ کامل

در یک سرویس سنتی، متدهای Read و Write هر دو از یک مدل و یک Repository عبور می‌کنند که باعث می‌شود منطق پیچیدهٔ نوشتن (اعتبارسنجی، قواعد کسب‌وکار) روی مسیر خواندن ساده هم سنگینی کند. CQRS این دو مسیر را جدا می‌کند: Query می‌تواند مستقیم و سریع باشد، Command می‌تواند کامل و ایمن باشد.

نکته مهم

CQRS می‌تواند «سبک» (فقط جداسازی کد) یا «کامل» (دیتابیس/مدل جدا + Event Sourcing) پیاده‌سازی شود.

اشتباه رایج

❌ تصور اینکه CQRS الزاماً پیچیده و فقط برای سیستم‌های بسیار بزرگ است.