در توسعه و نگهداری برنامههای بزرگ مشکلات زیادی وجود دارد. شما هر زمان که به یک مشکل برخورد میکنید چگونه راهحل مشکل را پیدا میکنید؟
خودتان راه حلی برای رفع مشکل پیدا میکنید و یا از دوستانتان کمک میگیرید؟
آیا میتوانید تضمین کنید راه حلی که برای رفع مشکل پیدا کردهاید راهحل مناسبی است؟
یک راهحل مناسب باید بتواند به این سالها پاسخ دهد
1- آیا در آینده توسعه برنامه را بدون مشکل میتوانیم انجام دهیم؟
2- این راهحل انعطافپذیر هست؟
3- بعد از پیادهسازی این راهحل سیستم ما Reusable هست؟ و استفاده مجدد از کدها بالاتر میرود؟
4- با این راهحل طراحی برنامه بهتر میشود؟
5- آیا کدنویسی تمیزی انجام شده؟
6- این راهحل مورد پذیرش اعضای تیم هست؟
7- میتوانیم راه حلی که استفاده کردهایم را ضمانت کنیم؟ آنقدر به راهحل اعتماد داریم که بتوانیم قاطع بگوییم این بهترین راهحل این مشکل است؟
8- شی گرایی و اصول Solid در این راهحل رعایت شده است؟
اگر برای رفع یک مشکل راهحل شما میتوانست به این سؤالات پاسخ دهد پس راهحل مناسبی پیدا کردهاید.
اما برنامهنویسان با تجربه چطور برای هر مشکل خیلی سریع یک راهحل بسیار خوب ارائه میکنند.
افراد حرفهای از روشها و راهحلهای استفاده میکنند که حاصل تجربه صدها برنامهنویس دیگر است.
برنامه نویسان حرفه ای از Design Patternsها یا همان الگوهای طراحی استفاده میکنند.
هرکدام از الگوهای طراحی طی سالها توسط تیمها و برنامهنویسان زیادی دستخوش تغییرات شدهاند و در نهایت به حد قابل قبولی رسیدهاند که ما بتوانیم از آنها با اطمینان استفاده نماییم.
با اینکه Design Patternها توسط برنامهنویسان زیادی معرفی شدهاند اما در سال ۱۹۹۴ برای اولینبار بهترین و معروفترین Design Patternها توسط ۴ نفر در کتابی با عنوان Design Patterns:Elements or Reusable Object Oriented Software جمعآوری و به چاپ رسید.
ریچارد هلم، اریک گاما،رالف جانسون و جان ولیسیدس نویسنده این کتاب بودند که به 4 گانگستر هم معروف هستند.
در دوره آموزش Design Patterns در زبان سی شارپ ۲۳ الگویی که در این کتاب به چاپ رسیدند را به شما آموزش میدهیم و بعدازاین دوره شما با این ۲۳ الگو آشنا شدهاید و بهراحتی میتوانید برای مشکلات پروژههای خود از این الگوها استفاده نمایید.
Design Pattern های که در این دوره آموزش داده می شوند
- Decorator
- Proxy
- Bridge
- Composite
- Flyweight
- Adapter
- Façade
- Prototype
- Factory Method
- Singleton
- Abstract Factory
- Builder
- Strategy
- State
- Template Method
- Chan of Responsibility
- Command
- Iterator
- Mediator
- Observer
- Visitor
- Interpreter
- Memento