ably ably برای هدایت شدن به سایت جدید اینجا کلیک کنید

آموزش برنامه نویسی

آموزش برنامه نویسی وب، اندروید، ویندوز , اسکیوال و...
Tell: 0912 097 5516
| Email: Hello@EduOnline.ir

۵ مطلب با کلمه‌ی کلیدی «آموزش Design Pattern» ثبت شده است

معماری n-layer

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

معماری n-layer

بخش سوم

N-Layer

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

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

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

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

تصور می کنم پاسخ سوال را بیان کرده باشم، طبیعتا نمی توان یک معماری را خوب و یا یک معماری را بد دانست (البته اگر موارد فنی آنها رعایت شده باشند)، معماری های متفاوتی وجود دارند که شما می بایست بر اساس تیم فنی خود، پروژه و سایر عوامل، معماری  مناسب را برای سازمان و کار خود انتخاب کنید. اما با وجود همه ی این مسائل معماری هایی وجود دارند که نسبت به سایر معماری ها شهرت دارند، مانند معماری 3 لایه و یا معماری 5 لایه.

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


در طراحی معماری یک نرم افزار می بایست مباحثی را مد نظر قرار داد که برخی از آنها را در این بخش بررسی خواهیم کرد.

ادامه مطلب...

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

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

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

بخش دوم

مقدمه

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

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

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

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

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

ادامه مطلب...

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

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

 

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

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

ساخت یک کارخانه نرم افزار

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

در دنیای نرم افزار نیز قوانینی وجود دارد که همه موظف به رعایت آن هستیم مثلا در زبان سی شارپ انتهای هر خط کد را با ";" مشخص می کنیم. شرکت هایی که از مدیران فنی با سوادی برخوردار هستند معمولا علاوه بر این قوانین، قوانین داخلی دیگری را برای انجام کارها وضع می کنند که می تواند بسیار کمک کننده باشد.

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

طبیعتا ایجاد یک نظم و قانون برای انجام پروژه ها می تواند منافع زیادی را برای شما داشته باشد که بهتر است برای روشن تر شدن این موضوع چند مورد از آنها را بررسی کنیم:

مزایای استفاده از الگوهای برنامه نویسیx

1- افزایش قابلیت پشتیبانی

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

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

ادامه مطلب...

تزریق وابستگی و DDD

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

 

 آموزش تزریق وابستگی

با توجه به اینکه چندین مطلب در مورد DI قرار دادم اما با توجه به مطلبی با عنوان معرفی متدولوژی DDD که برای دوستان قرار دادم و مثالی را در آن مطرح کردم و تصمیم گرفتم چند نکته جدید در بحث DI را در ادامه مثال مطلب DDD خدمتتان عرض کنم

همه با DI آشنا هستیم (در صورت عدم آشنایی لطفا مطالب قبلی را مطالعه نمایید) در مثال مطرح شده در مطلب DDD کدی به صورت زیر داشتید (پیشنهاد می کنم مطلب مربوطه را با عنوان معرفی متدولوژی Domain Driven Design برای درک هر چه بهتر این مطلب مطالعه فرمایید هر چند در صورت عدم مطالعه آن بحث زیر را متوجه خواهید شد) :

public class Account
{
    public int Id { get; set; }
    public string UserName { get; set; }
    public string Password { get; set; }
}

public class People
{
    public Account account { get; set; }
    public int Id { get; set; }
    public string FullName { get; set; }
    public string NationalCode { get; set; }
}
public class Report { public People people { get; set; } public int Id { get; set; } public string Text { get; set; } public DateTime RegisterDate{ get; set; } }

ادامه مطلب...

متدولوژی Domain Driven Design

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

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

 

متدولوژی Domain Driven Design

قبل از پرداختن به متدولوژی مربوطه می بایست با چند مبحث آشنا شویم.

Domain Model نمایی کلی از هر آنچه در سیستم می گذرد که قلب یک برنامه MVC است که قسمت های دیگر مثل View,Controller فقط وظیفه ایجاد ارتباط با این قسمت را دارند.

یک Domain Model شامل موارد زیر است:

اجزای سی شارپ مانند کلاس ها، Structها و همانند آنکه در مجموع به آن Domain type گفته می شود.

عملیاتی که در Domain Model انجام می شوند به وسیله متدهایی که در Domain Type تعریف شده اند انجام می پذیرند.

زمانی که نمونه ای از یک Domain Type را که نمایانگر موجودیتی است ایجاد می کنید، در حقیقت در حال ایجاد یک Domain Object هستید.

 

یک روش خوب برای ایجاد Domain Model ایجاد یک پروژه از نوع Class Library  تنها برای Domain Model است بدین ترتیب می توان از قسمت های دیگر پروژه به پروژه ی Domain Model ارجاع داشت.

در Asp.Net MVC  سه قابلیت برای کار با Domain Model وجود دارد:

Model Binding: همان ویژگی که در View از آن استفاده می کنید. (ارسال و دریافت پراپرتی ها به صورت یک مدل)

Model Metadata:روشهایی مانند [Display] که در مدل از آن استفاده می کنید.

Validation: اعتبارسنجی که در مدل انجام می دهید.

 

مدل کردن یک Domain

مدل کردن یک Domain یا Domain Modeling، فرایندی است که در طی آن اهداف و نیازمندی های پروژه شناسایی می شود.

ادامه مطلب...
up
ما را در گوگل محبوب کنید