مفاهیم برنامه نویسی ـ آشنایی با سازندهها
برای پاسخ به پرسش دوست گرامی آقای نجف زاده ابتدا بخشی از این مطلب را یادآوری میکنم.
"... مساحت را این بار به جای متد به صورت یک پروپرتی پیاده سازی میکنیم. اگرچه در آینده بیشتر راجع به چگونگی انتخاب برای پیاده سازی یک عضو کلاس به صورت پروپرتی یا متد بحث خواهیم کرد اما به عنوان یک قانون کلی در نظر داشته باشید عضوی که به صورت منطقی به عنوان داده مطرح است را به صورت پروپرتی پیاده سازی کنید. مانند نام دانشجو. از طرفی اعضایی که دلالت بر انجام عملی دارند را به صورت متد پیاده سازی میکنیم. مانند متد تبدیل به نوع داده دیگر. (مثلاً ()Object.ToString) ..."
بنابراین به نکات زیر توجه فرمایید.
۱. در این مطالب سعی شده است امکان پیاده سازی یک مفهوم به دو صورت متد و پروپرتی نشان داده شود تا در ذهن خواننده زمینه ای برای بررسی بیشتر مفهوم متد و پروپرتی و تفاوت آنها فراهم گردد. این زمینه برای کنجکاوی بیشتر معمولاً با انجام یک جستجوی ساده سبب توسعه و تثبیت علم شخص میگردد.
۲. در متن بالاً به صورت کلی اشاره شده است هر یک از دو مفهوم متد و پروپرتی در کجا باید استفاده شوند و نیز خاطرنشان شده است در مطالب بعدی در مورد این موضوع بیشتر صحبت خواهد شد.
۳. نکته مهم در طراحی کلاس، پایگاه داده و ... خرد جهان واقع یا محیط عملیاتی مورد نظر طراح است. به عبارت دیگر گسی نمیتواند به یک طراح بگوید به طور مثال مساحت باید متد باشد یا باید پروپرتی باشد. طراح با توجه به مفهوم و کارکردی که برای هر مورد در ذهن دارد بر اساس اصول و قواعد، متد یا پروپرتی را بر میگزیند. مثلاً در خرد جهان واقع موجود در ذهن یک طراح مساحت به عنوان یک عمل یا اکشنی که شیء انجام میدهد است و بنابراین متد را انتخاب میکند. طراح دیگری در خرد جهان واقع دیگری در حال طراحی است و مثلاً متراژ یک شیء خانه را به عنوان یک ویژگی ذاتی و داده ای مینگرد و گمان میکند خانه نیازی به انجام عملی برای بدست آوردن مساحت خود ندارد بلکه یکی از ویژگیهای خود را میتواند به اطلاع استفاده کننده برساند. پس شما به طراح دیگر نگویید اکشن تلقی میشه پس باید متد استفاده شود. اگر خود در پروژه ای چیزی را اکشن تلقی نمودید بله باید متد به کار ببرید. تلقیها بر اساس خرد جهان واقع معنا دارند.
۴. پروپرتی و متد از نظر شیوه استفاده و ... با هم تفاوت دارند. اما یک تفاوت مهم بین آنها بیان نوع مفاهیم موجود در ذهن طراح به کد مشتری است. فراموش نکنید خود پروپرتی دارای اکسسور است که چیزی مانند متد است. در خیلی از موارد صحیحتر بودن پیاده سازی با متد یا با پروپرتی معنا ندارد. انتخاب ما بین متد یا پروپرتی بر اساس نحوه استفاده مطلوب در کد مشتری و نیز اطلاع به مشتری که مثلاً فلان مفهوم از دید ما یک اکشن است و فلان چیز داده صورت میگیرد.
الگوریتمهای داده کاوی در SQL Server Data Tools یا SSDT - قسمت پنجم - الگوریتم Association Rules
از این الگوریتم بیشتر جهت تحلیل سبد خرید یا چیزی شبیه به آن استفاده میشود. مشتری در هر خرید، الگویی را تولید میکند. این الگو نشان دهنده این است که معمولا کدام کالاها با یکدیگر خریداری میشوند.
مقدمه
خودتان را جای مدیر یک سوپرمارکت بگذارید. یکی از وظایف شما فروش بالاتر نسبت به بقیه مدیران یک سوپرمارکت زنجیره ای است. برای نیل به این هدف، درک الگوی خرید مشتریان بسیار حایز اهمیت است. فرض کنید متوجه شدهاید که مشتریان شما در 75 درصد موارد سس، هات داگ و ترشی را با هم خریدهاند. بنابراین چیدن قفسه به طوری که این اقلام کنار یکدیگر باشند، بهتر است. همچنین میتوانید پکیجی را شامل این اقلام ایجاد کرده و با درصد تخفیف مناسبی بهفروش برسانید؛ برای مثال یک ترشی را که تازه به بازار آمده و هنوز اقبال عمومی در رابطه با آن وجود ندارد، اما سود خوبی در فروش آن نصیب شما میشود، در این پکیج و در کنار هات داگ و سس معروفی قرار داده و بفروش برسانید.
نحوه عملکرد الگوریتم
این الگوریتم، براساس شمارش ترکیبات تکرارشوندهی حالات گوناگون ویژگیهای یک مدل، کار میکند. این الگوریتم شبیه به الگوریتم Naïve Bayes میباشد؛ با این تفاوت که دارای رویکرد کمی است (براساس عدد خامی از وقوع ترکیبات حالات یک ویژگی) و رویکرد کیفی ندارد (محاسبه تمامی احتمالات شرطی، آنچه که در الگوریتم Naïve Bayes اتفاق میافتاد). همچنین در اینجا ماتریس ضرایبی محاسبه نمیشود، بلکه تنها ضرایب قابل توجه، نگهداری میشوند.
تفسیر مدل
این الگوریتم، پس از پردازش، سه تب دارد.
تب Itemsets تعداد تکرار مجموعه اقلام کشف شده را نشان میدهد. مقدار پارامتر Minimum_Support اگر خیلی پایین در نظر گرفته شود، آنگاه لیست طولانی را ایجاد میکند. با استفاده از Filter Item Set میتوان Item Setهای موردنظر را فیلتر نمود. برای مثال میتوان چنین Item Set ای را در نظر گرفت Gender=Male.
تب Rules نشان دهنده قوانین وابستگی کاربردی و ارزشمندی میباشد که به همراه احتمال و درجه اهمیتشان در یک جدول آورده شدهاند. درجه اهمیت (Importance) نشان دهنده میزان سودمندی یک قانون است و هرچه بیشتر باشد، قانون متناظر آن درجه کیفی بالاتری دارد. به عبارت دیگر بیشتر میتوان روی آن قانون حساب کرد. توسط پارامترهای Minimum_Probability و Minimum_Importance به ترتیب میتوان لیست مزبور را براساس مینیمم احتمال و مینیمم درجه اهمیت فیلتر کرد.
تب Network Dependency، هر آیتم و قانون، وابستگی بین آنها را نشان میدهد.
نکته آخر: در یک مدل وابستگی، اگر ستونی به عنوان ورودی در نظر گرفته شود، مقادیرش فقط میتوانند در itemsetهای تکرار شونده و درسمت چپ قوانین وابستگی قرار بگیرند. اگر ستونی به عنوان خروجی درنظر گرفته شود، حالات مختلف آن ستون میتوانند در itemsetهای تکرار شونده و در سمت راست قوانین وابستگی قرار بگیرند. اگر ستونی به عنوان ورودی-خروجی در نظر گرفته شود، آنگاه حالات مختلف آن ستون میتوانند در itemsetهای تکرار شونده و در سمت چپ و هم راست قوانین وابستگی قرار بگیرند.
- همچنین از آنجائیکه ما در یک دنیای محض زندگی نمیکنیم، نیاز خواهید داشت از IUnitOfWork گاهی از اوقات در لایه نمایشی هم استفاده کنید تا بتوانید یک تراکنش حاصل از چند موجودیت و چند کلاس لایه سرویس را در پایان کار درخواست رسیده (فقط یک تراکنش به ازای کل تعاملات یک درخواست)، به بانک اطلاعاتی اعمال کنید. بنابراین internal تعریف کردن آن در دنیای واقعی میسر نیست. حتی برای تعریف سیمکشیهای تزریق وابستگیهای اولیهی آن هم نباید internal تعریف شود. همچنین باز هم یک برنامهی واقعی الزاما تمام نیازهای تجاریاش در لایه سرویس قرار نمیگیرد. مثلا نیاز خواهید داشت با میانافزارها، اکشن فیلترها و غیره هم کار کنید که اینها محل قرارگیری استاندارد و مشخصی ندارند و هر جائی قابل تعریف هستند.
EF Code First #7
باید اقدام کنیم . ایا قانون تو کار خود ef است ؟
ساعت کاری محل کار شما چگونه است؟
تقریبا چهار روز پیش اواسط هفته گذشته ( در تاریخ 16 March ) مایکروسافت نسخه 1.12 شیرپوینت فریم ورک ( SPFx ) را منتشر کرد. نسخه تازه منتشر شده شامل برخی از تغییرات مربوط به generator و بعضی از تغییرات همانند سایر نسخهها بود. (همانطور که بهتر میدانید generator همان تکنولوژی است که با آن سولوشنهای شیرپوینت فریم ورک ایجاد میشوند ، با استفاده از yeoman ) . اما موضوع مهمی که در این نسخه که برای توسعه دهندگاه SharePoint Framework حائز اهمیت است، پشتیبانی از Node.js V12 است. این موضوع خبر بسیار خوبی برای توسعه دهنگان SPFx است چون از ماه آینده ( اواخر April ) نسخه Node.js V10 رسما پشتیبانی نخواهد شد.
البته ممکن است بسته به نوع سولوشنی که در SPFx v1.12 ایجاد مینمایید بتوانید بدون مشکل از node.js v14 استفاده کنید اما نسخه ای که به صورت غیر رسمی توصیه شده همان نسخه 12 نود جی اس است. خبر خوبتر اینکه انتظار میرود برای نسخه 1.13 شیرپوینت فریم ورک ( SharePoint Framework v.13 ) که از هفتههای آینده )نهایتا ( در ماه آینده منتشر خواهد شد بتوان از آخرین نسخه node.js بدون محدودیت استفاده از ورژنهای مختلف بدون مشکل استفاده نمود.