گردش کار برنامه را با ابزارهای منبع باز مدیریت کنید که پردازش قوانین اساسی را به کد شما اضافه می کند.
در قلب هر نرم افزار سازمانی، منطق تجاری آن قرار دارد، کدی که ورودی ها را تجزیه و تحلیل می کند و خروجی های مناسب ایجاد می کند. به این صورت است که مراحل یک فرآیند تجاری را به کد تبدیل می کنیم و در هر مرحله از یک گردش کار، منطق را اضافه می کنیم. به این ترتیب ما فقط باید کدهای لازم را بنویسیم و می توانیم از پیچیدگی جلوگیری کنیم.
همه منطق کسب و کار در سنگ بنا نیست. برخی از فرآیندها، به ویژه آنهایی که کلید امور مالی یک کسب و کار هستند، اغلب توسط قوانین و مقررات خارجی هدایت می شوند که می توانند در کوتاه مدت تغییر کنند. برای مثال، زمانی که سیاستهای دولتی تغییر ناگهانی در نرخ یا نحوه اعمال آن نرخها را مجبور میکنند، ممکن است مالیات فروش را به عنوان بخشی از خدمات تجارت الکترونیک محاسبه کنید.
این امر میتواند باعث شود که ناگهان مجبور شوید منابع را از پروژههای دیگر برای توسعه سریع ماژولهای جدید جمعآوری کنید تا به محض اجرایی شدن مقررات جدید آماده اجرا شوید. منابع توسعه ارزان نیستند، بنابراین چیزی که لازم است راهی برای بیرونی کردن آن قوانین و مقررات است تا نیازی به تغییر کد خود نداشته باشید، فقط قوانینی که استفاده می کند.
پاسخ قدیمی است: موتور قوانین. در اینجا مقادیر ورودی آزمایش می شوند و قوانین ساده اعمال می شوند و نتیجه ای را برمی گرداند که نشان می دهد کدام قوانین راه اندازی شده اند. جنبه های پیچیده منطق تجاری می تواند در ماژول ها و خدمات خود باقی بماند. تنها چیزی که باید تغییر کند، پیکربندی موتور قوانین است. بنابراین، برای مثال، اگر یک سرویس باید فراخوانی شود اگر تراکنش بزرگتر از ۵۰ دلار باشد، و قوانین تغییر کند تا این محدودیت ۴۵ دلار باشد، تنها کاری که باید انجام دهید این است که قانونی را ویرایش و بهروزرسانی کنید که سرویس را فراخوانی میکند و تراکنش را به آن ارسال میکند. آن.
معرفی Microsoft Rules Engine
مایکروسافت یک کتابخانه Rules Engine منبع باز با کاربری نسبتاً آسان برای برنامههای NET ایجاد کرده است، به صورت بسته NuGet یا از GitHub موجود است. قوانین طراحی شده برای ارائه یک انتزاع قانون از کد شما، در خارج از برنامه شما به عنوان JSON با قوانین نوشته شده با استفاده از . نحو بیان آشنای لامبدا NET. یک انجمن فعال و بهروزرسانیهای منظم، آن را به ابزاری مفید تبدیل کرده و ارزش توجه را دارد.
با قوانین آن خارج از کد شما، میتوانید قوانین را در هر زمان با آپلود یک فایل قوانین جدید و راهاندازی مجدد برنامه خود تغییر دهید. میتوانید یک فروشگاه مناسب برای قوانین خود انتخاب کنید، بهترین گزینه برای پلتفرمی که روی آن اجرا میکنید، به عنوان مثال، استفاده از MySQL در سرور وب، سیستم فایل در رایانه شخصی، یا یک حساب ذخیرهسازی Azure Blob برای یک برنامه Azure. برنامه خدمات.
هنگامی که کتابخانه Rules Engine را به کد خود اضافه کردید، موتور قوانین و پیامهای ورودی را تجزیه میکند، نتایج را به برنامه شما برمیگرداند و اجازه میدهد پردازش بر اساس وضعیت ارائه شده توسط موتور ادامه یابد. خود کتابخانه خارج از کد شما قرار دارد و بهعنوان یک بسته NuGet ارجاعشده با بستهبندی کار میکند تا قوانین را دریافت و ذخیره کند، و همچنین بقیه برنامه شما را از نتایج ارزیابی قوانین هدایت میکند.
ساخت قوانین برای Rules Engine
شروع به کار با .NET Rule Engine نسبتاً ساده است. ابتدا باید در نظر بگیرید که چگونه قوانین را از برنامه خود جدا کنید و سپس چگونه آنها را در عبارات لامبدا توصیف کنید. گزینههایی برای ایجاد قوانین سفارشی خود با استفاده از کلاسهای عمومی وجود دارد که میتوان از یک عبارت لامبدا به آن اشاره کرد، رویکردی که محدودیتهای مربوط به عبارات لامبدا را دور میزند و فقط میتواند از روشهایی از فضای نام سیستم داتنت استفاده کند.
میتوانید یک طرح JSON برای قوانین پیدا کنید در مخزن GitHub پروژه. این یک طرح جامع است، اما در عمل، احتمالاً فقط به یک ساختار نسبتاً اساسی برای قوانین خود نیاز دارید. با دادن یک نام به گردش کار قوانین خود و سپس دنبال کردن آن با یک لیست تودرتو از قوانین شروع کنید. هر قانون به یک نام، رویدادی که در صورت موفقیت آمیز بودن مطرح می شود، یک پیام خطا و نوع، و یک عبارت قانون که به عنوان عبارت لامبدا تعریف می شود، نیاز دارد.
عبارت قانون شما باید بر اساس ورودی های موتور قوانین تعریف شود. هر ورودی یک شی است و تابع لامبدا مقادیر مختلف مرتبط با ورودی را ارزیابی می کند. هر مقدار باید یک آزمایش داده شود، با تستهایی که بخشی از یک عبارت منطقی است که وقتی درست ارزیابی شود، رویداد موفقیت قانون را آغاز میکند. ایده خوبی است که از قبل همه قوانینی را که میخواهید استفاده کنید، همراه با شرایطی که برای اجرای قانون باید رعایت کنید، فهرست کنید. به این ترتیب میتوانید تأیید کنید که قوانینی که تعریف کردهاید با موارد استفاده برنامه شما مطابقت دارد به نحوی که آنها را برای ذینفعان قابل درک میکند.
برای استفاده از Rules Engine، ابتدا از یک سازنده برای نمونه سازی کتابخانه استفاده کنید و قوانین گردش کار را به صورت JSON بارگیری کنید. پس از راهاندازی و اجرا، دریافت نتایج از Rules Engine باید آن را با نام گردش کار و ورودیهای فعلی فراخوانی کنید، رویدادهای OnSuccess یا OnFail را دریافت کنید و از آنها در برنامه خود استفاده کنید. ویکی دستورالعملهای مفصل را برای نحوه استفاده از کتابخانه ارائه میدهد.
ویرایشگر قوانین خود را بسازید
یک ابزار مفید برای کمک به ایجاد قوانین به شکل یک کتابخانه Blazor UI است که می تواند موارد جدید را ویرایش کند. قوانین و آنها را در قالب مناسب برای برنامه های خود صادر کنید. می توانید آن را در کد خود بسازید تا بتوانید توسعه قوانین خود را در فایروال خود نگه دارید، یا یک شروع سریع به شکل یک برنامه وب پیشرفته مبتنی بر WebAssembly که توسعه دهندگان می توانند برای ایجاد قوانین منطبق با طرحواره روی دستگاه های خود نصب کنند.
ویرایشگر قوانین PWA در دو حالت کار می کند. ابتدا، یک نمای مبتنی بر گردش کار قوانین را با استفاده از عبارات لامبدا می سازد. گزینه دوم Input RuleParameters را تعریف میکند که میتواند نامهای سفارشی به قوانین بدهد. در عین حال، میتوانید از پارامترهای محلی در یک قانون استفاده کنید تا آن را به عناصر قابل فهم با نامهای خود تقسیم کنید که سپس میتوانند در یک قانون ترکیب شوند. به عنوان مثال، یک پارامتر محلی را می توان با عبارتی مرتبط کرد که نشان می دهد آیا یک ورودی خاص یک مقدار خاص است یا خیر، با دیگری برای یک ورودی متفاوت. سپس نتایج مرتبط با هر پارامتر محلی را می توان در یک عبارت منطقی ترکیب کرد تا مشخص شود که آیا قانون کامل راه اندازی می شود یا نه.
با جدا کردن قوانین از کد و استفاده از ویرایشگر مبتنی بر وب برای ایجاد قوانین جدید، میتوانیم ابزاری بسازیم که به تحلیلگران تجاری اجازه میدهد قوانین را بدون نیاز به ورودی توسعهدهنده اصلاح کنند. این رویکرد می تواند در زمان و منابع صرفه جویی کند. این ابزار کاملاً شبیه به پلتفرم Power شما نیست، زیرا ورودیها و قوانین قابل ویرایش را محدود میکنید و با محدودیتهای بسیار بیشتری نسبت به پلتفرم قدرت آزادتر کار میکنند. با این حال، دادن برخی عناصر کنترل به کاربران در مناطقی که تغییرات مورد انتظار است، تضمین میکند که این تغییرات به موقع انجام میشوند و توسعهدهندگان نیازی به تعویض وظایف خود در لحظه ندارند.
استفاده از موتور قوانین مانند این میتواند گردش کار برنامه را سادهسازی کند، منطق کسبوکار شما را خارجیسازی کند و امکان بهروزرسانیهای سریع را فراهم کند که سایر روشها و ابزارهای توسعه ممکن است از آن جلوگیری کنند. رویکرد منبع باز مایکروسافت برای توسعه کتابخانه دات نت به شما امکان می دهد وارد کد شوید و تغییراتی ایجاد کنید که نیازهای کسب و کار شما را پشتیبانی می کند و همچنین به شما امکان می دهد از بهبود عملکرد جامعه محور و ویژگی های جدید استفاده کنید.
پست های مرتبط
کار با موتور قوانین دات نت مایکروسافت
کار با موتور قوانین دات نت مایکروسافت
کار با موتور قوانین دات نت مایکروسافت