رحیم لطفی
رحیم لطفی
خواندن ۱ دقیقه·۸ ماه پیش

Dynamic Aggregate

برنامه نویسی امروز تماماً در مورد هزینه ها است. یکی از مهمترین چالش های شرکت های نرم افزاری پرفرمنس می باشد.

در بیشتر موارد در زمان طراحی aggregate ها ما بر اساس نیازمندی های اولیه aggregate ها را طراحی می کنیم اما در آینده ممکن است نیازمندی ها تغییر کند و aggregate ها برای جواب دادن به نیاز مندی های آینده زیاد مناسب نباشد و باعث مشکلات پرفرمنس و پیچیده شدن کوئری های شود یا حتی نیاز به لود شدن دیتا های اضافه باشد.

و تغییر درaggregate ها ممکن است در بخش های زیادی از برنامه تغییرات انتشار یافته داشته باشد و زمان و هزینه توسعه را بیشتر نمایید. در بعضی موارد بر اساس نوع دیتابیس )SQL Server, MongoDb, ..( شاید نیاز باشد برای موارد پرفرمنسی ترتیب واکشی Entity ها رو درaggregate ها تغییر دهیم یا نیاز باشد بخشی از aggregate لود شود.

به عبارتی دیگر یک aggregate برای یک نیاز مندی مناسب و برای نیازمندی های دیگر مناسب نباشد و باعث پیچیدگی در طراحی شود. و در سنارویو های مختلف نیاز به ترکیب و لود شدن aggregate های مختلف باشد. برای جلوگیری از این گونه مشکلات پیشنهاد می شود که aggregate ها را کوچیک طراحی کنیم و میتواند از Dynamic aggregate استفاده نمایید.

Dynamic aggregate این امکان را به شما میدهد که aggregate ها را ترکیب و به صورت پویا در زمان اجرا لود نمایید . Dynamic aggregate این امکان را فراهم می کند که بدون تغییر در aggregate های اولیه بتوان دیتا را از aggregate مختلف باز سرعت زیاد لود کنید. در زمان خواندن دیتا های از aggregate های مختلف جهت کم کردن تعداد I/O پیشنهاد می شود از Dynamic aggregate استفاده نمایید.

Dynamic Aggregate
Dynamic Aggregate


اگریگیت پویا - Dynamic Aggregate

منبع

https://github.com/RahimLotfiGH/AUAFramework.Net8_CQRS


dynamic aggregatedomain driven designsoftware archetecture
شاید از این پست‌ها خوشتان بیاید