Notice: file_put_contents(): Write of 2577 bytes failed with errno=28 No space left on device in /var/www/tgoop/post.php on line 50

Warning: file_put_contents(): Only 16384 of 18961 bytes written, possibly out of free disk space in /var/www/tgoop/post.php on line 50
Web Devs@fullStackDevs P.755
FULLSTACKDEVS Telegram 755
🔰وقتی سیستم‌ها با هم حرف می‌زنند:
Command vs Event vs Pub/Sub

معمولا پیام هایی که در بین سیستم ها تبادل می شود در دو دسته قرار دارن.

در دسته اول فرستنده پیام هایی میفرسته که مشخص کننده اینکه یک عملیات باید انجام بشه، مثل PlaceOrder که به معنی "ثبت سفارش‌جدید " هست. این نوع پیام‌ها Command نام دارند.

در مورد Command، بین فرستنده (sender) و گیرنده (receiver) یک وابستگی منطقی (logical coupling) وجود داره، چون فرستنده می‌دونه که گیرنده باید با اون دستور چی کار کنه.

این یعنی فرستنده دقیقاً مشخص می‌کنه چه کاری باید انجام بشه (مثلاً "سفارش ثبت کن") و فرض می‌گیره که گیرنده توانایی انجامش رو داره.

دستورها (Commands) معمولاً فقط توسط یک گیرنده پردازش می‌شن، که این موضوع باعث انعطاف‌پذیری کمتری می‌شه.

📌 برای مثال: اگر بخوای چند سیستم همزمان به یک Command پاسخ بدن، باید تغییراتی در منطق اون Command ایجاد کنی که برخلاف اصل Open/Closed هست.

در دسته دوم Event ها هستن، Event ها فقط اطلاع میدن که "یه اتفاق افتاده"، مثلاً OrderCreated یعنی "سفارش ثبت شد".

🚨 فرقش با Command اینه که Event یه گزارشه از یه چیزیه ک تموم‌شده، نه درخواست اجرای یه عملیات.

و Eventها loosely coupled هستن چون فرستنده اصلاً نمی‌دونه که چه کسی قراره به این پیام واکنش نشون بده یا چطور باهاش برخورد بشه. فرستنده فقط می‌گه: "این اتفاق افتاد" .

دلیل این موضوع هم اینه که Event ها معمولاً بر اساس الگوی(Publish/Subscribe) کار می‌کنن. یعنی یه نفر Event رو publish می‌کنه، و هر کسی که به اون Event علاقه‌منده (subscriber) اون رو دریافت می‌کنه.

به‌خاطر این وابستگیه کمی که Publish/Subscribe در بین Publisher و Subscriber ایجاد می‌کنه، در خیلی از موارد استفاده از Event ها ترجیح داده میشن نسبت به Commandها.

یکی از مزایای مهم Event اینه که می‌تونی Subscriber جدید اضافه کنی بدون اینکه کدهای موجود رو تغییر بدی.

💡 این خیلی ارزشمنده چون توسعه سیستم رو بدون درگیر شدن با بقیه بخش‌ها ممکن می‌کنه.

یعنی تیم بیزینس می‌تونه یه Bounded Context جدید به راحتی اضافه کنه، بدون اینکه به کدهای فعلی دست بزنه یا کار تیم‌های دیگه رو مختل کنه.

📌 مثلاً در مثال فروشگاه اینترنتی، اگر OrderCreated منتشر بشه، تیم مارکتینگ فقط با Subscribe کردن به اون Event می‌تونه وارد جریان بشه، بدون اینکه توی سیستم سفارش‌گذاری اصلی دخالتی ایجاد کنه.

@fullStackDevs
👍5



tgoop.com/fullStackDevs/755
Create:
Last Update:

🔰وقتی سیستم‌ها با هم حرف می‌زنند:
Command vs Event vs Pub/Sub

معمولا پیام هایی که در بین سیستم ها تبادل می شود در دو دسته قرار دارن.

در دسته اول فرستنده پیام هایی میفرسته که مشخص کننده اینکه یک عملیات باید انجام بشه، مثل PlaceOrder که به معنی "ثبت سفارش‌جدید " هست. این نوع پیام‌ها Command نام دارند.

در مورد Command، بین فرستنده (sender) و گیرنده (receiver) یک وابستگی منطقی (logical coupling) وجود داره، چون فرستنده می‌دونه که گیرنده باید با اون دستور چی کار کنه.

این یعنی فرستنده دقیقاً مشخص می‌کنه چه کاری باید انجام بشه (مثلاً "سفارش ثبت کن") و فرض می‌گیره که گیرنده توانایی انجامش رو داره.

دستورها (Commands) معمولاً فقط توسط یک گیرنده پردازش می‌شن، که این موضوع باعث انعطاف‌پذیری کمتری می‌شه.

📌 برای مثال: اگر بخوای چند سیستم همزمان به یک Command پاسخ بدن، باید تغییراتی در منطق اون Command ایجاد کنی که برخلاف اصل Open/Closed هست.

در دسته دوم Event ها هستن، Event ها فقط اطلاع میدن که "یه اتفاق افتاده"، مثلاً OrderCreated یعنی "سفارش ثبت شد".

🚨 فرقش با Command اینه که Event یه گزارشه از یه چیزیه ک تموم‌شده، نه درخواست اجرای یه عملیات.

و Eventها loosely coupled هستن چون فرستنده اصلاً نمی‌دونه که چه کسی قراره به این پیام واکنش نشون بده یا چطور باهاش برخورد بشه. فرستنده فقط می‌گه: "این اتفاق افتاد" .

دلیل این موضوع هم اینه که Event ها معمولاً بر اساس الگوی(Publish/Subscribe) کار می‌کنن. یعنی یه نفر Event رو publish می‌کنه، و هر کسی که به اون Event علاقه‌منده (subscriber) اون رو دریافت می‌کنه.

به‌خاطر این وابستگیه کمی که Publish/Subscribe در بین Publisher و Subscriber ایجاد می‌کنه، در خیلی از موارد استفاده از Event ها ترجیح داده میشن نسبت به Commandها.

یکی از مزایای مهم Event اینه که می‌تونی Subscriber جدید اضافه کنی بدون اینکه کدهای موجود رو تغییر بدی.

💡 این خیلی ارزشمنده چون توسعه سیستم رو بدون درگیر شدن با بقیه بخش‌ها ممکن می‌کنه.

یعنی تیم بیزینس می‌تونه یه Bounded Context جدید به راحتی اضافه کنه، بدون اینکه به کدهای فعلی دست بزنه یا کار تیم‌های دیگه رو مختل کنه.

📌 مثلاً در مثال فروشگاه اینترنتی، اگر OrderCreated منتشر بشه، تیم مارکتینگ فقط با Subscribe کردن به اون Event می‌تونه وارد جریان بشه، بدون اینکه توی سیستم سفارش‌گذاری اصلی دخالتی ایجاد کنه.

@fullStackDevs

BY Web Devs


Share with your friend now:
tgoop.com/fullStackDevs/755

View MORE
Open in Telegram


Telegram News

Date: |

There have been several contributions to the group with members posting voice notes of screaming, yelling, groaning, and wailing in different rhythms and pitches. Calling out the “degenerate” community or the crypto obsessives that engage in high-risk trading, Co-founder of NFT renting protocol Rentable World emiliano.eth shared this group on his Twitter. He wrote: “hey degen, are you stressed? Just let it out all out. Voice only tg channel for screaming”. It’s easy to create a Telegram channel via desktop app or mobile app (for Android and iOS): Commenting about the court's concerns about the spread of false information related to the elections, Minister Fachin noted Brazil is "facing circumstances that could put Brazil's democracy at risk." During the meeting, the information technology secretary at the TSE, Julio Valente, put forward a list of requests the court believes will disinformation. The main design elements of your Telegram channel include a name, bio (brief description), and avatar. Your bio should be: Ng Man-ho, a 27-year-old computer technician, was convicted last month of seven counts of incitement charges after he made use of the 100,000-member Chinese-language channel that he runs and manages to post "seditious messages," which had been shut down since August 2020.
from us


Telegram Web Devs
FROM American