a

ABLY مقالات و مطالب مجموعه

صفحه اصلی / ABLY مقالات و مطالب مجموعه

بسم الله الرحمن الرحیم

 

 

بخش ششم

الگوهای برنامه نویسی

الگوی Abstract Factory

 

در آموزش قبل با روش Method Factory آشنا شدیم، در این روش با الگوی برنامه نویسی Abstract Factory آشنا خواهیم شد.

در روش Method Factory تمامی اشیا توسط یک متد ایجاد می شدند، اما در روش Abstract Factory هر کلاس یک سازنده جداگانه خواهد داشت و البته همه ی این سازنده ها در کلاس اصلی ما قرار می گیرند.

آموزش Method Factory

 

در Abstract Factory ما یک Interface اصلی خواهیم داشت که مجموعه ای از Object های وابسته را تعریف می کند. در Abstract Factory ما وظیفه ی تولید هر شی را به Factory مربوطه اش واگذار می کنیم، اینجاست که اگر بعد از مدتی از ما خواسته شود که برنامه را بسط بدهیم تنها با ایجاد یک Factory مشکل را می توانیم حل می کنیم.

 

روش Abstract Factory برای ایجاد اشیای مرتبط مورد استفاده قرار می گیرد، این روش به دلیل اینکه تمامی اشیا را به صورت واحد طراحی و ایجاد می کند روش Factory of factories نیز خوانده می شود، همانطور که گفته شد در روش Abstract Factory یک interface مسئولیت ایجاد و ساخت اشیاء مرتبط را به عهده دارد.

بسم الله الرحمن الرحیم

بخش پنجم

الگوهای برنامه نویسی

الگوی Factory

شاید با مفهوم (OCP (Open Close Principle آشنا باشید، OCP یکی از اصول اساسی طراحی سیستم های شی گرا می باشد که بسیاری از ما این اصل را رعایت نمی کنیم. OCP بیانگر این مفهوم می باشد که کدهای  شما باید در براب

بسم الله الرحمن الرحیم

بخش چهارم

الگوی طراحی (Design Pattern)

الگو طراحی چیست؟

design pattern چیست؟

Design pattern ها راهکارهایی هستند برای رفع مشکلات طراحی نرم افزار، pattern ها یا همان الگوها باعث می شوند تا کدهای ما قابلیت استفاده مجدد داشته باشند.

در دنیای واقعی ما با مشکلات زیادی هر روز روبرو می شویم و برای آنها راهکارهایی خواهیم داشت و بسیاری از این راهکار را از دیگران یا بر حسب تجربه آموخته ایم. در دنیای نرم افزار نیز ما با مشکلات زیادی روبرو می شویم و بسیاری از این مشکلات را با روشهای خاصی حل می کنیم. این روش ها همان الگوها یا به اصطلاح pattern ها هستند.

حال اگر ما به صورت دقیق فعالیت هایی را انجام دهیم که باعث شوند میزان مشکلات ما کم تر شوند بدین معنا خواهد بود که ما از یک سری الگوهای رفتاری یا همان Design pattern استفاده می کنیم.

Design pattern ها یا روش های مختلفی برای حل مشکلات وجود دارد، که طبیعتا هر یک از این روش ها می تواند مشکلات خاصی را حل می کنند، در نتیجه هر تیم نرم افزاری بر اساس مشکلات و پروژه خود یکی از روش های Design pattern را می تواند انتخاب کند، البته می توان روشهای مختلفی را نیز کنار یکدیگر به کار گرفت.

 

کاربرد و هدف الگوهای طراحی

اما الگوهای طراحی بعد از الگو های معماری آمدند و در طراحی زیر سیستم ها، Package  ها و Component ها استفاده می­ شوند و هدفشان ارائه راه حل هایی برای حل مشکلات معمول و تکراری می­ باشد، مشکلاتی مانند:

    مدیریت حافظه

    مدیرت اشاره گرها

    synchronization  and mutual exclusion

    جلوگیری از بن بست (deadlock avoidance)

 

در Design pattern ها مفهومی به نام الگوی معماری (Architectural pattern) وجود دارد، این معماری مشخص کننده ترکیب ساختاری (Structural Arrangement) زیر سیستم های های نرم افزاری و قوانین ارتباطی ببین آنها می باشد.

لازم است توجه شود که الگو‌های طراحی به حل مسأله کمک می‌کنند ولی راه‌حل کامل آنرا در اختیار ما نمی‌گذارند همچنین استفاده از الگوهای طراحی الزامی نیست و برنامه نویس بعد از درک درست از مسئله و با توجه به نیاز می تواند از این الگوها استفاده کند.

در اینجا سعی می کنیم تا به بررسی الگوهای طراحی از دو دیدگاه بپردازم، یکی تقسیم بندی الگوها از نظر GOF و دیگری از دیدگاه Martin Fowler.

بسم الله الرحمن الرحیم

معماری n-layer

بخش سوم

N-Layer

در بخش قبل معماری های نرم افزار  را بررسی کردیم و همچنین معماری سه لایه را بیان کردیم. در این بخش قصد داریم معماری های n-Layer یا معماری های چند لایه ای را بررسی کنیم.

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

بسم الله الرحمن الرحیم

انواع معماری های نرم افزار

بخش دوم

مقدمه

داشتن یک الگوی مناسب در هر کاری باعث می­شود شما به صورت برنامه ریزی شده و در یک چارچوب حرکت کنید در نتیجه خروجی کار هم بسیار  بهتر خواهد بود. بحث مهندسی نرم افزار هم از این قانون تبعیت می­کند وقتی در تولید یک نرم افزار از الگوها استفاده کنیم باعث میشود که سرعت تست نرم افزار بیشتر شود، و امکان توسعه نرم افزار بعد از مدتی بسیار راحت تر و سریعتر صورت گیرد. امروزه برنامه نویسی که آشنا به این الگوها نباشد با مشکلاتی روبرو می شود زیرا شرکت های نرم افزاری موفق در ارائه محصولات خود از الگوهای معرفی شده در این صنعت بهره می برند.

در این مقاله سعی خواهم کرد تا به معرفی الگوهای معماری و طراحی نرم افزار بپردازیم امیدواریم که این مطالب بتوانند مفید واقع شوند.

الگوهای برنامه نویسی

 اگر بخواهم در مورد الگو صحبت کنم در واقع باید بگم یک الگو راه حلی برای حل مسایل است که در گذشته به عنوان بهترین راه حل ارائه شده، الگوها ساختارها و روش (methodology) های کلی ایجاد می­کنند. یک الگو یک abstraction قابل تشخیص است که در موقعیت­ها و برنامه های کاربردی مختلف تکرار شده و متناوبا استفاده می­شود. این موقعیت می­تواند مربوط به ساختار (Structure) باشد که مبین الگوی معماری است و یا توصیفی از رفتار (behavior) نرم افزار باشد که تعریفی از الگوی طراحی است و یا در خصوص یک زبان برنامه نویسی خاص باشد که در این صورت الگوی زبان نام دارد.

الگوهای معماری

بسم الله الرحمن الرحیم

ارزیابی رفتار کاربران و  ثبت گزارشات

سئو سایت

امروزه با توجه گسترش حوزه نرم افزار و الخصوص وب سایت، بسیاری از تجارت ها، فناوری ها، روابط و فعالیت ها توسط وب سایت ها صورت می گیرد.

این گستردگی و پیشرفت تا حدی رسیده است که حتی کشوری مانند امریکا در حال تغییر پشتوانه خود به داده است!

این جمله بدین معنا است که با داشتن دانش و داده در هر زمینه ای می توان حاکمیت آن موضوع را در دست گرفت.

برای جمع آوری داده (Data) و تبدیل آن به دانش (information) می توان از روش های مختلفی استفاده کرد و این روش ها بسیار متنوع و گوناگون هستند و می توانند بر اساس نیاز در زمان و محیط های مختلف مورد استفاده قرار گیرند.

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

بسم الله الرحمن الرحیم

Action ها می تواننند مقادیر مختلفی را بر گردانند در این آموزش قصد داریم نحوه ایجاد یک ActionResult را برای بازگرداندن یک فایل بررسی کنیم.

برای این کار کافی است به صورت زیر عمل کنید

public ActionResult Index()
{
  string path = Server.MapPath(@"~/Images/logo.png");
  return (File(path, contentType: "ABLY", fileDownloadName: "logo.png"));
}

همانطور که مشاهده می کنید بسیار کار ساده ای را در اینجا انجام داده ایم.

پارامتر اول در واقع مسیر و نام و پسوند فایلی است که می خواهید دانلود شود.

پارامتر دوم contentType برای معرفی محتوای فایل به برنامه های دانلود و مرورگر می باشد.

پارامتر سوم که fileDownloadName می باشد در واقع همان نام فایلی است که میخواهید در هنگام دانلود برای کاربر نمایش داده شود.

بسم الله الرحمن الرحیم

بررسی Unity, Castle Windsor, StructureMap  و Ninject

یک مقایسه سریع بر روی چهار DI و IoC داشتم و ابزارهای Unity, Castle Windsor, StructureMap  و Ninject را با دو سناریو متفاوت بررسی شدند.

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

StructureMap

بسم الله الرحمن الرحیم

آموزش ابزارهای ALT.Net

این مطلب را برای دوستان تیم طراحی و تست قرار دادم انشالله مفید واقع شود

معرفی برخی از ابزارهای ALT.Net

به ابزارهایی که جهت افزایش کیفیت و ابداع روش های جدید جهت افزایش بهره وری کار تولید می شوند را ALT.NET می گویند.

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

برنامه های آزمایش واحد

NUnit

0912 097 5516 :شماره تماس
0713 625 1757 :شماره تماس