جستجو در بخش : سوال جواب منابع اسلامی لغت نامه ها قوانین و مصوبات نقل قل ها
×

فرم ورود

ورود با گوگل ورود با گوگل ورود با تلگرام ورود با تلگرام
رمز عبور را فراموش کرده ام عضو نیستم، می خواهم عضو شوم
×

×

آدرس بخش انتخاب شده


جهت کپی کردن میتوانید از دکمه های Ctrl + C استفاده کنید
رویداد ها - امتیازات
در حال بارگذاری
×

رویداد ها - امتیازات

برای بررسی عملکرد فعالیت و امتیازات خود باید در وب سایت وارد باشید. در صورت عضویت از بخش بالای صفحه وارد شوید، در غیر این صورت از دکمه پایین، مستقیم به صفحه ثبت نام وارد شوید.

×
×
×

دلیل درخواست بستن پست

کلیه پست هایی که جنبه تبلیغاتی داشته، محتوای اسپم و بی مفهوم در این دسته قرار میگیرند. همچنین پست هایی که به منظور گرفتن بک لینک درج می شوند شامل این مورد هستند.
حاوی مفاهیم غیر اخلاقی، سیاسی و یا توهین آمیز. کلیه پست هایی که از نظر محتوایی نیاز به بررسی و یا حذف شدن دارند در این دسته قرار می گیرند.
محتوایی با عدم جزئیات کافی و مورد نیاز. کلیه پست هایی که منظور نویسنده به وضوح مشخص نیست و نیازمند توضیحات و جزئیات بیشتر می باشند در این دسته قرار می گیرند.
محتوایی بی ربط با موضوعیت سرفصل کلی. کلیه پست هایی که از منظر مفهوم و مضمون ارتباطی با عنوان اصلی سوال ندارند در این دسته قرار می گیرند.
محتوایی دلخواه و بر پایه سلیقه. کلیه پست هایی که یک پاسخ مشخص ندارند و متوانند چندین پاسخ متفاوت و صحیح داشته باشند که کاملا مبتنی بر نظر شخصی افراد هستند در این دسته قرار می گیرند.
محتوایی در حوزه خیلی وسیع. کلیه پست هایی که از نظر محتوایی در یک حوزه ی وسیعی قرار دارند و مشخصا به یک موضوع خاصی اشاره ندارند که پاسخدهی به آن ها مستلزم تشریح مفاهیمی کلی می باشند در این دسته قرار می گیرند.
قبلا در لام تا کام مطرح شده. پست هایی که دقیقا با همین محتوا و مضمون قبلا در وب سایت لام تا کام درج شده اند، با ذکر آدرس منبع تکراری با پست حال حاضر شامل این دسته هستند. تکراری است با:
به سایر دلایل، نیازمند به بررسی توسط مدیر. به هر دلیل غیری که پست را نیازمند بررسی توسط مدیر کرده، با ذکر دلیل، در این دسته قرار میگیرد.
ارسال رای بستن

ایونت سورسینگ event sourcing چیست و چه کاربردی دارد؟


1
0
2039

در دنیای برنامه نویسی و تکنولوژی، ظاهرا یک مفهومی وجود داره تحت عنوان ایونت سورسینگ (event sourcing) ...

ترجمه تحت اللفظیش میشه «منبع رویدادها»، ولی خب این به اندازه کافی برای من واضح نیست. کسی میدونه که چیه این ایونت سورسینگ؟ چه کاربردی داره؟

آیا ابزارهایی وجود داره برای پیاده سایزش؟ از اون مهمتر اینکه منظور از «ایونت» به خودی خود در اینجا چیه؟ چه رخدایی رو ایونت میگن اینجا؟ و همچنین منظور از «سورسینگ» همون یک دیتابیس یا یک پایگاه داده هست؟ چیزی که ایونت ها از اونجا فراخوانی میشن و منبع تمام ایونت ها اونجا هست؟

ممنون میشم اگر یک توضیحی راجع بهش بدید و بگید چه موقع هایی بهتره که ازش استفاده بشه؟ کلا مفهومش بسته به یک زبان برنامه نویسی مشخص هست یا کلا توی تمام زبان های برنامه نویسی میشه ازش استفاده کرد. جالب اینجاست که توی اینترنت هم خیلی چیزی براش پیدا نمیشه من سرچ کردم چیز آنچنانی و واضحی نبود. اینم بگم که من یک وب سایت دارم که CTO یک شرکت بزرگ وقتی به وب سایتم نگاه کرد بهم گفت چون توی وب سایتت یک سری فرایند مرتبط با امورات مالی داری بهتره از ایونت سورسینگ استفاده کنی. به همین خاطره که برام جذاب شد که چیه. مرسی

تکنولوژی برنامه-نویسی طراحی-الگوریتم
سوال شده در سعید مرادی
1933 امتیاز

500 کاراکتر باقی مانده

1 جواب

3

ایونت سورسینگ Event Sourcing چیست؟

«ایونت سورسینگ» در واقع یک عملیات است که طی یک فرایند انجام می شود. در منبعی که بنده قصد دارم توضیحاتم رو در این جواب برگرفته از اون تشریح کنم، اینگونه به عنوان تعریف ایونت سورسینگ ذکر شده:

Capture all changes to an application state as a sequence of events.

به این معنی که «ثبت و ضبط کردن تمام تغییرات در وضعیت یک اپلیکیشن به طور بهم پیوسته و دنباله دار» رو ایونت سورسینگ میگن.

برای ابزار هم، متناسب با معماری نرم افزار و تکنولوژی هایی که درش بکار رفته، باید تصمیم گرفت که از چه دیتابیسی و با چه مدلی این تغییرات وضعیت نرم افزار رو ثبت کرد. نکته مهم در این حوزه پیوستگی این دیتای ثبت شده است. به این معنی که دیتا باید بگونه ای ثبت شده باشه که شما باید قادر باشید مسیر تغییر رفتارها رو ببینید و تحلیل بکنید.

باید بتونید تشخیص بدید که دقیقا در چه مرحله ای رفتار و عملکرد نرم افزار (یا همون اپلیکیشن) اشتباه و غیر قابل انتظار بوده. ایونت سورسینگ فواید زیادی داره که از جمله مهمترینش میشه به دیباگ کردن منطقی پروژه و کنترل کیفی و رفتاری پروژه اشاره کرد.

به عنوان مثال، در سامانه های مالی که به طور مستقیم با حساب و کتاب پولی ارتباط دارن، پیاده سازی همچین مکانیسمی برای track کردن مقادیر مالی و کشف کسورات پولی در انتهای محاسبات و گزارشات بشدت حائز اهمیت هست. همچنین وقتی شما یک ورژن جدید از پروژه رو ارائه میکنید و طبیعتا انتظار دارید که در بعضی جاهاش که تغییرش دادید، این تغییرات رو در رفتار پروژه هم ببینید که با ایونت سورسینگ و مقایسه با دیتای ضبط شده سابق میشه به این مهم دست یافت.

ایونت سورسینگ چگونه کار میکنه؟

به طور کلی یک آبجکتی وجود داره به اسم event که باید مطمین باشیم تمام تغییرات بلا استثناء توی اون آبجکت دارن ذخیره میشن؛ که این این آبجکت ها خودشون با ترتیب مشخص و قابل track (بازگشتی) توی دیتابیس ثبت میشن. به عنوان مثال برای اینکه ببینم دقیقا یک کِشتی چه موقع یک بندرگاه رو ترک میکنه یا به یک بندرگاه جدید میرسه، همچین مکانیسمی لازمه:

یک اینترفیس ساده برای کنترل کردن حرکت یک کشتی

توی مورد بالا، اینطوریه که وقتی سرویس صدا زده میشه، سیستم کشتی مورد نظر رو پیدا میکنه و محل جدیدش رو بروزرسانی میکنه؛ و ship objects (شیء هایی که توی کد برای کِشتی نوشتیم) وضعیت فعلی که پروژه از کشتی داره رو ثبت میکنن. ایونت سورسینگ دقیقا به این مرحله، یک گام دیگه اضافه میکنه؛ یعنی سرویس یک event object (یک شی به نام event) می سازه که تمام تغییرات رو ثبت کنه و به مرحله بعدی که بروزرسانی وضعیت کشتی هست پروسه رو انتقال بده.

استفاده از یک ایونت برای ثبت و ضبط کردن تغییرات

وقتی به پروسه بالا نگاه میکنیم، شاید احساس کنیم که یک گام بیهوده به پروسه اضافه شده. ولی وقتی به صورت out of box (نگاه از بیرون یا همون نگاهی فراتر) بهش نگاه میکنیم، میبینیم که چقدر دقت کاری نرم افزار رو ارتقاء دادیم و بطوری که کوچکترین تغییرات هم توی این مدل قابل پیگیری و کنترل هستن. فرض کنید:

  • کشتی King Roy به سمت کشور سانفرانسیسکو حرکت میکنه.
  • کشتی Prince Trevor به کشور لس آنجکس میرسه.
  • کشتی King Roy به کشور هونگ-کونگ میرسه.

اگه از ایونت سورسینگ استفاده نکنیم، ما فقط وضعیت آخر هر کشتی رو خواهیم دید، در صورتی که در مدل استفاده از ایونت سورسینگ، ما دقیقا میتونیم بفهمیم زمانی که کشتی x فلان جا بوده، کشتی y کجا بوده و دقیقا ثبت تمام این تغییرات ریز و درشت رو بهش میگن «ایونت سورسینگ».

وضعیت کشتی ها بدون ایونت سورسینگ:

وضعیت کشتی ها بدون ایونت سورسینگ

وضعیت کشتی ها با ایونت سورسینگ:

وضعیت کشتی ها با ایونت سورسینگ

خلاصه از نگاه یک مدیر فنی یا یک مالک محصول، و یا از نگاه یک برنامه نویسی که نگاه وسیعی داره، استفاده از ایونت سورسینگ کیفیت و دقت پروژه رو خیلی ارتقاء میده و ضریب خطا و از دست داده دیتا رو به حداقل میرسونه. شایان ذکره که با استفاده از ایونت سورسینگ event sourcing بعد از یک مدتی میشه یک سری نمودارها و چارت های تحلیلی هم از رفتار و عملکرد بخش های مختلف پروژه ترسیم کرد که در یک نگاه مختصر دیتا و اطلاعات زیادی رو به ما میده و میتونه توی تصمیم گیری‌ها و اولیت بندی توسعه محصول بهمون کمک کنه.

جواب داده شده در سجاد شفی زاده <m>★</m>
11.1k امتیاز

1
خیلی عالی توضیح دادید آقای شفی زاده ممنون از شما ــ سعید مرادی در 5 سال قبل

500 کاراکتر باقی مانده


جواب شما
     
.....
×

×

جعبه لام تا کام


وب سایت لام تا کام جهت نمایش استاندارد و کاربردی در تمامی نمایشگر ها بهینه شده است.

تبلیغات توضیحی


داپ اَپ اولین پلتفرم کش‌بک در ایران
اگه میخوای از خریدهایی که میکنی، پاداش نقدی دریافت کنی داپ اَپ رو نصب کن.

تبلیغات تصویری