معماری میکروسرویس (یا به اختصار: میکروسرویس) یک سبک معماری نرم افزار میباشد که در آن یک نرم افزار، به مجموعهای از سرویسها خرد میشود؛ به نحوی که هر سرویس مسئولیت انجام بخشی از منطق کسب و کار را به عهده داشته باشد.
این تقسیم بندی مزایای متعددی را به همراه دارد که نهایتا پیاده سازی و توسعه راحتتر نرم افزارهای بزرگ و پیچیده را ممکن مینماید. از جمله مزایای این معماری میتوا ...
در ادامه سری مقالات مرتبط با برنامه نویسی تابعی ، قصد دارم به استفاده کردن یا نکردن از نوعهای داده اولیه (Primitive Types) را بررسی کنیم. پیشنهاد میکنم در صورتی که قسمتهای قبلی را مطالعه نکرده اید ابتدا قسمتهای قبل را بخوانید.
در طراحی مدل دامین، بیشتر مواقع از نوعهای اولیه مانند int , string,… استفاده میکنیم و به عبارتی میتوانیم بگوییم در استفاده از این نوع داده وسواس داریم. قطعه کد زیر را در نظر بگیرید: public c ...
شرایطی را در نظر بگیرید که نیاز است از تغییرات یک Entity در سیستم آگاه شویم. برای مثلا در زمان ثبت سفارش جدید در فروشگاه، ایمیلی به مدیر فروشگاه ارسال شود، یک Business Rule نیز چک شود و همچنین بنابر نیاز مشتری، تعداد آنها روز به روز ممکن است افزایش یابد و چه بسا در اعمال این Ruleها، موجودیتهای مختلفی درگیر باشند. در این صورت است که خواسته یا ناخواسته اتصال بین کلاسها خیلی افزایش خواهد یافت. یکی از راه حلهای رهایی از این پیچیدگی و اتصال ...
DDD
چیست؟ روشی است ساده، زیبا، در وهله اول برای تفکر، و در وهله دوم برای
توسعه نرم افزار، که میتوان بر مبنای آن نیازمندیهای پویا و پیچیدهی حوزه
دامین را تحلیل، مدل و نهایتا پیاده سازی کرد.در این روش توسعه نرم افزار تاکید ویژه ای بر الزامات زیر وجود دارد:تمرکز اصلی پروژه، باید صرف فائق آمدن بر مشکلات و پیچیدگیهای موجود در دامین شود.پیچیدگیهای موجود در دامین پس از شناسایی به یک مدل تبدیل شوند.برقراری
یک رابطهی خلاق بین متخصصان ...
UIدر نهایت
نوبت به طراحی و کدنویسی UI میرسد تا بتوانیم
محصولات را به کاربر نمایش دهیم. اما قبل از شروع باید موضوعی را یادآوری کنم. اگر
به یاد داشته باشید، در کلاس ProductService موجود در لایهی Domain، از طریق یکی از روشهای الگوی Dependency Injection به نام Constructor
Injection، فیلدی از نوع IProductRepository را مقداردهی نمودیم. حال
زمانی که بخواهیم نمونه ای را از ProductService ایجاد نماییم، باید به
عنوان پارامتر ورودی سازن ...
Service Layerنقش لایهی سرویس این است که به عنوان یک مدخل ورودی به برنامه
کاربردی عمل کند. در برخی مواقع این لایه را به عنوان لایهی Facade نیز میشناسند. این لایه، دادهها را در
قالب یک نوع داده ای قوی (Strongly Typed) به نام View Model، برای لایهی Presentation فراهم میکند. کلاس View Model یک Strongly Typed محسوب میشود که نماهای
خاصی از دادهها را که متفاوت از دید یا نمای تجاری آن است، بصورت بهینه ارائه مینماید. در مورد الگوی Vi ...
Domain Model یا Business
Layerپیاده سازی را از منطق تجاری یا Business Logic آغاز میکنیم. در روش کد
نویسی Smart UI، منطق تجاری در Code
Behind قرار میگرفت اما در روش لایه بندی، منطق
تجاری و روابط بین دادهها در Domain Model طراحی و پیاده سازی میشوند. در مطالب بعدی راجع به Domain Model و الگوهای پیاده سازی آن
بیشتر صحبت خواهم کرد اما بصورت خلاصه این لایه یک مدل مفهومی از سیستم میباشد که
شامل تمامی موجودیتها و روابط بین آنهاست ...
طراحی یک معماری خوب و مناسب یکی از عوامل مهم تولید یک برنامه
کاربردی موفق میباشد. بنابراین انتخاب یک ساختار مناسب به منظور تولید برنامه
کاربردی بسیار مهم و تا حدودی نیز سخت است. در اینجا یاد خواهیم گرفت که چگونه یک
طراحی مناسب را انتخاب نماییم. همچنین روشهای مختلف تولید برنامههای کاربردی را
که مطمئنا شما هم از برخی از این روشها استفاده نمودید را بررسی مینماییم و مزایا
و معایب آن را نیز به چالش میکشیم.ضد الگو (Antipattern) – ...