آموزش عملی دیزاین پترن‌ها

به همراه مثال‌ها و تمرین‌های کاربردی در پایتون

avataravataravatar

و ۲۸۵ نفر دیگر ثبت‌نام کرده‌اند.

آموزش دیزاین پترن ها

۳۰٪

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

متداول‌ترین

نیازمندی برای مصاحبه‌های تکنیکال شرکت‌های حوزه IT

۲۰٪

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

معرفی

مخاطبین

پیش‌نیازها

سرفصل‌ها

اساتید

0 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1

معرفی دوره

در دنیای وسیع توسعه نرم‌افزار، عبارت «چرخ را دوباره اختراع نکن» بسیار شنیده می‌شود. الگوهای طراحی یا Design Patterns‌ مانند یک نقشه به ما کمک می‌کنند که نرم‌افزارهای بهتری در زمان کمتری تولید کنیم و از چرخ‌های ساخته شده به شکل بهتری استفاده کنیم! در شرکت‌های تخصصی IT الگوهای طراحی اهمیت بسیار زیادی دارند چون تنها با داشتن دانش مرتبط می‌توان نرم‌افزارهای مناسبی ساخت و در نتیجه دانش دانش دیزاین‌پترن کمک زیادی به استخدام در آن شرکت‌ها می‌کند. در این دوره از کوئرا کالج با دیزاین‌پترن‌های پرکاربرد در توسعه‌ی نرم‌افزار آشنا می‌شوید و به صورت عملی آن‌ها را فرا می‌گیرید تا با کمک آن‌ها برنامه‌نویس‌های حرفه‌ای‌تری شوید.

    • section item

      این دوره مناسب شما است اگر...

      مشتاقید به بازار پردرآمد برنامه‌نویسی و حوزه‌ی نرم‌افزار وارد شده و آینده‌ی شغلی خود را رقم بزنید.

      علاقه‌مندید که کدنویسی خود را بهبود داده و کدهای تمیزتر و خواناتری بزنید.

      بازار کار و حقوق بالای برنامه‌نویسان در داخل و خارج ایران برایتان جذاب است.

      می‌خواهید دیزاین پترن‌ها را به صورت عملی و یکبار برای همیشه به شکل اصولی بیاموزید.

    • section item

      این دوره مناسب شما نیست اگر...

      هنوز فکر می‌کنید که شرکت‌ها برای استخدام به مدرک دانشگاهی شما توجه می‌کنند.

      تجربه‌ی عملی چندین هزار خط کدنویسی برایتان ارزشی ندارد.

      حاضر نیستید در هفته ۵ ساعت برای یادگیری، پیشرفت و رشد درآمدتان زمان بگذارید.

      می‌خواهید دیزاین پترن‌ها را به طور سطحی و گذرا بیاموزید.

    • پیش‌نیازها

    • لازم است...

      section item

      علاقه و پشتکار داشته باشید.

      section item

      به یک زبان برنامه‌نویسی (ترجیحاً پایتون) مسلط باشید.

    • لازم نیست...

      section item

      در رشته‌ی کامپیوتر تحصیل کرده باشید.

    سرفصل‌های دوره

    certificate

    اساتید و مربیان دوره

    teacher's avatar

    محمدحسین باقری

    طراحی و تولید

    مهندس نرم‌افزار در کوئرا | فارغ‌التحصیل مهندسی کامپیوتر دانشگاه شهید باهنر کرمان
    teacher's avatar

    محمد جعفری

    طراحی و تولید

    مهندس نرم‌افزار در کوئرا | فارغ‌التحصیل مهندسی کامپیوتر دانشگاه اصفهان
    teacher's avatar

    حامد صفری

    طراحی و تولید

    مهندس نرم‌افزار در کوئرا | فارغ‌التحصیل مهندسی کامپیوتر دانشگاه زنجان
    college

    آموزش عملی دیزاین پترن‌ها

    feature

    ۱۲ تمرین

    feature

    گواهی معتبر

    feature

    عضو پارک علم و فناوری شریف

    و ۲۸۸ نفر دیگر ثبت‌نام کرده‌اند.

    feature

    ۱۲ تمرین

    feature

    گواهی معتبر

    feature

    عضو پارک علم و فناوری شریف

    سوالات متداول











    آموزش دیزاین پترن ها (Design Patterns) - آموزش الگوهای طراحی با کوئرا کالج

    دیزاین پترن یا الگوهای طراحی چیست؟

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

     

    الگوهای طراحی بهترین روش‌ها و راه‌حل‌های اثبات‌شده‌ای را که در طول زمان توسط توسعه‌دهندگان با تجربه بهبود یافته‌اند، به تصویر می‌کشند. آنها یک زبان مشترک و مجموعه‌ای از مفاهیم را برای بحث و ارتباط در مورد تصمیمات طراحی و الگوهای تعامل بین کلاس‌ها یا اشیاء فراهم می‌کنند.

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

    تاریخچه الگوهای طراحی (Design Pattern)

    مفهوم الگوها ابتدا توسط کریستوفر الکساندر در کتاب "زبان الگو: شهرها، ساختمان‌ها، ساخت و ساز" توضیح داده شد. این کتاب یک "زبان" برای طراحی محیط شهری توصیف می‌کند. واحدهای این زبان، الگوها هستند. این الگوها ممکن است بگویند که پنجره‌ها چقدر باید بلند باشند، یا یک ساختمان چند طبقه باشد، یا نحوه اندازه‌گیری مناطق سبز در یک محله چطور باشد و غیره.

    این ایده توسط چهار نویسنده، اریک گاما، جان ولیسیدس، رالف جانسون و ریچارد هلم، به عنوان گروه چهارگانه (Gang of Four)، ادامه یافت. در سال 1994، آن‌ها کتاب "الگوهای طراحی: عناصر نرم‌افزار شیءگرا بازمند" را منتشر کردند که پای مفهوم الگوهای طراحی را به برنامه‌نویسی باز کردند. این کتاب شامل 23 الگو بود که مسائل مختلف طراحی شیءگرا را حل می‌کرد و به سرعت به یکی از پرفروش‌ترین کتاب‌ها تبدیل شد. به دلیل نام طولانی آن، مردم آن را "کتاب گروه چهارگانه" می‌نامیدند که به زودی به سادگی به "کتاب گواف" کوتاه شد.

    از آن زمان، ده‌ها الگوی شیءگرا دیگر کشف شده‌اند. "رویکرد الگو" در زمینه‌های برنامه‌نویسی دیگر نیز بسیار محبوب شد، بنابراین الگوهای بسیاری خارج از طراحی شیءگرا نیز وجود دارند.

     

    انواع الگوهای طراحی یا دیزاین پترن‌ها

    الگوهای طراحی به سه نوع اصلی تقسیم می‌شوند:

    1. الگوهای ساختاری (Creational Patterns)

    این الگوها بر روی مکانیسم‌های ایجاد اشیاء تمرکز دارند و راه‌هایی برای ایجاد اشیاء به گونه‌ای ارائه می‌دهند که انعطاف‌پذیر بوده و با نیازهای خاص برنامه سازگار باشند. نمونه‌هایی از این نوع الگو شامل الگوی تک‌نمونه (Singleton)، الگوی کارخانه (Factory) و الگوی سازنده (Builder) هستند.

    2. الگوهای ساختاری (Structural Patterns)

    این الگوها با ترکیب کلاس‌ها و اشیاء برای ایجاد ساختارهای بزرگ‌تر و در عین حال حفظ انعطاف‌پذیری و کارایی سر و کار دارند. این نوع الگوها اطمینان حاصل می‌کنند که کلاس‌ها و اشیاء به طور مؤثر با یکدیگر کار کنند تا به هدف مشترکی دست یابند. نمونه‌هایی از الگوهای ساختاری شامل الگوی تطبیق‌دهنده (Adapter)، الگوی تزئین‌کننده (Decorator) و الگوی ترکیبی (Composite) هستند.

    3. الگوهای رفتاری (Behavioral Patterns)

    این الگوها بر روی تعاملات و ارتباط بین اشیاء و کلاس‌ها تمرکز دارند. آنها راه‌حل‌هایی برای مدیریت موثر جریان کنترل، مسئولیت‌ها و رفتار بین اشیاء فراهم می‌کنند. نمونه‌هایی از این الگوها شامل الگوی مشاهده‌گر (Observer)، الگوی استراتژی (Strategy) و الگوی دستور (Command) هستند.

    دیزاین پترن‌های رایج

    الگوی تک‌نمونه (Singleton Pattern)

    تضمین می‌کند که تنها یک نمونه از یک کلاس ایجاد می‌شود و یک نقطه دسترسی جهانی به آن فراهم می‌کند. در مواردی کاربرد دارد که می‌خواهید یک نمونه تک و مشترک از یک کلاس در سراسر برنامه داشته باشید.

    الگوی سازنده (Builder Pattern)

    این الگو راهی برای ساخت اشیاء پیچیده به صورت مرحله به مرحله ارائه می‌دهد و به شما این امکان را می‌دهد که نمایش‌های مختلف یک شیء را با استفاده از همان فرآیند ساخت متفاوت ایجاد کنید.

    الگوی کارخانه (Factory Pattern)

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

    الگوی تطبیق‌دهنده (Adapter Pattern)

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

    الگوی تزئین‌کننده (Decorator Pattern)

    این الگو با بسته‌بندی یک شیء با یک یا چند شیء تزئین‌کننده، اجازه می‌دهد که به صورت پویا توابع یا ویژگی‌های جدید به آن اضافه شود. 

    الگوی مشاهده‌گر (Observer Pattern)

    یک رابطه یک به بسیار بین اشیاء را تعریف می‌کند، بنابراین هنگامی که یک شیء وضعیت خود را تغییر دهد، همه وابستگان آن به طور خودکار به‌روزرسانی می‌شوند.این الگو معمولاً در سیستم‌های پردازش رویداد، به‌روزرسانی واسط کاربری و جداسازی مولفه‌ها استفاده می‌شود.



    چرا باید از دیزاین پترن استفاده کنیم؟

    الگوهای طراحی یک مجموعه از راه‌حل‌های امتحان‌شده و موثر برای مسائل رایج طراحی نرم‌افزار هستند که توسط توسعه‌دهندگان ماهر و باتجربه در زمینه شیءگرایی ایجاد شده‌اند. هر توسعه‌دهنده نرم‌افزار باید دانشی از الگوهای طراحی داشته باشد زیرا:

     

    این الگوها زندگی ما را آسان‌تر می‌کنند؛ زیرا الگوهای طراحی، سیستم‌های شیءگرا را انعطاف‌پذیرتر، مقاوم‌تر در برابر تغییرات و برای نگهداری ساده‌تر می‌کنند.

     

    ما می‌توانیم تنها با یادگیری الگوهای طراحی، مهارت‌های برنامه‌نویسی شیءگرای خود را بهبود بخشیم؛ زیرا الگوهای طراحی با راهنمایی ما، به ما آموزش می‌دهند که  چگونه مسائل تکرار شونده طراحی شیءگرا را حل کنیم.

     

    الگوهای طراحی یک زبان مشترک تعریف می‌کنند که یک توسعه‌دهنده نرم‌افزار می‌تواند برای ارتباط و همکاری با سایر توسعه‌دهندگان از آن استفاده کند. توسعه‌دهندگان می‌توانند از نام الگوی طراحی برای توضیح بهینه ایدئولوژی پشت طراحی برنامه استفاده کنند.