Seniorسختی 3 از ۵· در 72٪ مصاحبههای این حوزه پرسیده شده
CQRS چیست و چه مشکلی را حل میکند؟
☆نشان کردنپاسخ کوتاه
CQRS (Command Query Responsibility Segregation) مسیر کد خواندن و نوشتن داده را از هم جدا میکند تا هرکدام مستقل بهینهسازی و توسعه یابند.
پاسخ کامل
در یک سرویس سنتی، متدهای Read و Write هر دو از یک مدل و یک Repository عبور میکنند که باعث میشود منطق پیچیدهٔ نوشتن (اعتبارسنجی، قواعد کسبوکار) روی مسیر خواندن ساده هم سنگینی کند. CQRS این دو مسیر را جدا میکند: Query میتواند مستقیم و سریع باشد، Command میتواند کامل و ایمن باشد.
نکته مهم
CQRS میتواند «سبک» (فقط جداسازی کد) یا «کامل» (دیتابیس/مدل جدا + Event Sourcing) پیادهسازی شود.
اشتباه رایج
❌ تصور اینکه CQRS الزاماً پیچیده و فقط برای سیستمهای بسیار بزرگ است.
