Skip to Sidebar Skip to Content
اقرأ-تك اقرأ-تك
ضيفنا الكريم

  • تسجيل الدخول
  • الرئيسية
  • المقالات
  • خطط الاشتراك
  • - اصدارتنا
  • ورقة وقلم
  • مدونات فطين
  • شنطة مبرمج
  • النشرة الأسبوعية
  • كنوز
  • - تعرف علينا
  • من نحن
  • الشراكات
  • كتاب المحتوى
  • اكتب معنا
  • تواصل معنا
  • - بنود الخدمة
  • سياسة الخصوصية
  • الشروط والأحكام
الوسوم
  • Backend
  • Distributed Systems
  • System Design
  • Databases
  • LinkedIn
  • X
  • Facebook
  • Telegram
  • GitHub
جميع الحقوق محفوظة لمنصة اقرأ-تِك 2024©
CQRS Architecture Pattern
CQRS Architecture Pattern
  • Software Architecture
  • System Design
  • Microservices

CQRS Architecture Pattern

 بناء البرمجيات زي بناء المباني بالظبط محتاج ترتب أجزاء المبني وعلاقتهم ببعض بطريقة مناسبة لوظيفة المبني والمستخدمين, فالبيت مبني وكذلك الجامعة مبني ولكن الحجم, والوظيفة والمستخدمين مختلفين ومن هنا بتيجي فكرة ال Architectural Patterns في البرمجيات.

  • Alaa Elkzaz by Alaa Elkzaz
    Alaa Elkzaz Alaa Elkzaz
    Co-Founder & Software Engineer
    • Website
  • ٢٢ سبتمبر، ٢٠٢٤
  • •
  • 1 min read
  • Share on X
  • Share on Facebook
  • Share on LinkedIn
  • Share on Pinterest
  • Email

المقدمة

 بناء البرمجيات زي بناء المباني بالظبط محتاج ترتب أجزاء المبني وعلاقتهم ببعض بطريقة مناسبة لوظيفة المبني والمستخدمين, فالبيت مبني وكذلك الجامعة مبني ولكن الحجم, والوظيفة والمستخدمين مختلفين ومن هنا بتيجي فكرة ال Architectural Patterns في البرمجيات.

والشطارة بتكون في ازاي استخدم النمط الأكثر إفادة لوظيفة وحجم ونوع الاستخدام لمشروعي اللي شغال عليه.


Command Query Responsibility Segregation (CQRS)

في معظم مشاريعنا بنستخدم CRUD Pattern وبنعتمد علي الوظائف الأساسية فيه زي Create, Read, Update, Delete وبالفعل هو نمط مناسب للمشاريع البسيطة والصغيرة والمتوسطة في الحجم لأنه سهل.

ولكن في حالات بنحتاج فيها Data Manipulation اكثر من الـ CRUD يقدر يقدمه , زي اننا نشتغل في Business العلاقات فيه بين ال objects معقدة أكتر أو تطبيق يكون فيه استهلاك البيانات فيه عالي وكذلك كتابتها ودا بيوقعنا في مشكلة لأن متطلبات الـ Scaling في حالة الـ Heavy Reads تختلف عن متطلباته في حالة الـ Heavy Writes 

ال CQRS اختصار لـ Command Query Responsibility Segregation أو Separation وهو نمط هدفه الفصل بين الـ Commands و الـ Queries في الكود وبنعّرف فيه:

  • الأوامر (Commands): : هي عملية كتابة أو تغيير البيانات وهي العمليات اللي فيها بتتغير حالة النظام. والأوامر جي بتقوم بـ "فعل" شيء وتؤثر على حالة النظام.
  • الاستعلامات (Queries): عملية قراءة البيانات وهي العمليات اللي بتسترجع بيانات و لكن لا تغير حالة النظام. بمعنى أنها "تسأل" عن شيء معين ولا تعدل أي شيء.
CQRS - Command Query Responsibility Segregation

الـ CQRS يستخدم اثنين من الـ Models المختلفة عشان يحقق الأوامر (Commands) بالـ Model المناسب ليها و كذلك Model خاص بالـ للاستعلامات (Queries). وبما إن دا Architectural Pattern فبيسيب للمبرمج حرية اختيار وتنويع الـ Models اللي شايفها بتحقيق الهدفين دول وايه الأنسب لمشروعه وده بيدينا مرونة في التنفيذ. 

كمان نقدر في تنفيذه نستخدم 2 من قواعد البيانات -الطريقة الأكثر شيوعًا- واحدة مخصصة للاستعلامات وواحدة للأوامر ويتعمل بينهم Synching.


مميزات الـ CQRS

هذا المقال مخصص للأعضاء المنتسبين لخطط الاشتراك المدفوعة فقط

اشترك الآن وتصفح كافة المقالات المميزة واستمتع بمحتوى حصري وابق على اطلاع دائم بالتحديثات المستمرة.

اشترك الآن 🚀

هل لديك حساب؟ تسجيل الدخول

في هذا المقال
اشترك الآن واكمل قراءة المقال
قناة اقرأ-تِك على التليجرام قناة اقرأ-تِك على التليجرام

مقالات ذات صلة

  • Layered Architecture 1 min read

    Layered Architecture

    Mahmoud Youssef Mahmoud Youssef • ١٨ أبريل، ٢٠٢٥
    Mahmoud Youssef Mahmoud Youssef
    CEO & Founder
    • X
    • Facebook
    • Website
  • Introduction to Microservices 1 min read

    Introduction to Microservices

    Mohamed Ramadan Mohamed Ramadan • ٢٢ يناير، ٢٠٢٥
    Mohamed Ramadan Mohamed Ramadan
    Backend Developer
    • Website
  • CQRS and Mediator Pattern Overview 2 min read

    CQRS and Mediator Pattern Overview

    Ahmed Mohamed Ahmed Mohamed • ١ ديسمبر، ٢٠٢٤
    Ahmed Mohamed Ahmed Mohamed
    Senior Software Engineer
    • Website
  • Clean Architecture in ASP.NET Core 1 min read

    Clean Architecture in ASP.NET Core

    Alaa Nassar Alaa Nassar • ٢١ أكتوبر، ٢٠٢٤
    Alaa Nassar Alaa Nassar
    DotNet Developer
    • Website
  • Full Guide Into API Documentation With Template 2 min read

    Full Guide Into API Documentation With Template

    Khaled Abdelfattah Khaled Abdelfattah • ١٣ أكتوبر، ٢٠٢٤
    Khaled Abdelfattah Khaled Abdelfattah
    Software Technical Writer
    • Website
  • Understanding Onion Architecture in ASP.NET Core 1 min read

    Understanding Onion Architecture in ASP.NET Core

    Alaa Nassar Alaa Nassar • ٧ أكتوبر، ٢٠٢٤
    Alaa Nassar Alaa Nassar
    DotNet Developer
    • Website
  • Serverless Architecture 1 min read

    Serverless Architecture

    Mahmoud Youssef Mahmoud Youssef • ٢٨ أبريل، ٢٠٢٤
    Mahmoud Youssef Mahmoud Youssef
    CEO & Founder
    • X
    • Facebook
    • Website
  • Message Queues 1 min read

    Message Queues

    Mahmoud Youssef Mahmoud Youssef • ٢٦ يناير، ٢٠٢٤
    Mahmoud Youssef Mahmoud Youssef
    CEO & Founder
    • X
    • Facebook
    • Website
  • Quick Overview of Architectural Tests 3 min read

    Quick Overview of Architectural Tests

    محمد مجدى محمد مجدى • ١ يناير، ٢٠٢٤
    محمد مجدى محمد مجدى
    Engineering Manager
    • Website
  • Database Cheatsheet for System Design 1 min read

    Database Cheatsheet for System Design

    Mahmoud Youssef Mahmoud Youssef • ٢١ ديسمبر، ٢٠٢٣
    Mahmoud Youssef Mahmoud Youssef
    CEO & Founder
    • X
    • Facebook
    • Website

اشترك الآن بنشرة اقرأ‑تِك الأسبوعية

لا تدع أي شيء يفوتك. واحصل على أحدث المقالات المميزة مباشرة إلى بريدك الإلكتروني وبشكل مجاني!

اقرأ-تك اقرأ-تك
  • الرئيسية
  • المقالات
  • خطط الاشتراك
  • - اصدارتنا
  • ورقة وقلم
  • مدونات فطين
  • شنطة مبرمج
  • النشرة الأسبوعية
  • كنوز
  • - تعرف علينا
  • من نحن
  • الشراكات
  • كتاب المحتوى
  • اكتب معنا
  • تواصل معنا
  • - بنود الخدمة
  • سياسة الخصوصية
  • الشروط والأحكام
الوسوم
  • Backend
  • Distributed Systems
  • System Design
  • Databases
  • LinkedIn
  • X
  • Facebook
  • Telegram
  • GitHub
جميع الحقوق محفوظة لمنصة اقرأ-تِك 2024©