الگوهای طراحی حرفه ای - TypeScript

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

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

۹۴ جلسه
۱ سال پشتیبانی
گارانتی بازگشت ۱۰۰ درصدی وجه

آزمون تعین سطح تسلط بر الگوهای طراحی نرم افزار

آموزش الگوهای طراحی برنامه نویسی (Design Patterns)

اولین تجربه من در الگوهای طراحی

اولین تسک فنی (یک مسئله) من در یک شرکت بزرگ که به عنوان برنامه نویس Backend در اون مشغول به کار شده بودم، مسئله ای بود که در نگاه اول بسیار عجیب و غریب به نظر می رسید و یک راه حل عجیب و غریب هم براش در نظر گرفته بودن.

داستان از این قرار بود که در نرم افزار شرکت از یک پکیج برای ثبت نام و لاگین کاربر با استفاده از یاهو و گوگل استفاده شده بود و مشکلی که این پکیج داشت این بود که اگر کاربری اکانت یاهو داشت آدرس جی میل خودش رو به عنوان آدرس اصلی یا Primary ثبت میکرد، همون آدرس به برگشت داده میشد و عملا ما کاربری داشتیم که با یاهو ثبت نام کرده اما آدرس ایمیلش به جای @yahoo.com با @gmail.com تموم میشد.

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

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

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

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

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

در این روش ما با ایجاد یک کلاس تازه در کدهای برنامه که کلاس مورد نظر داخل پکیج رو توسعه میده و public api اون در بخش دریافت آدرس ایمیل رو بازنویسی میکنه عملا تونستم مشکل رو حل کنم.

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

الگوهای طراحی چیه؟

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

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

سوال بعدی که می توانیم مطرح کنیم این است که بهترین روش حل مسئله کدام است؟ بدون شک ساده ترین روش حل مسئله بهترین روش حل مسئله هست و ما همیشه باید در نظر داشته باشیم مهم ترین چیز در توسعه نرم افزار قابلیت نگهداری نرم افزار یا Maintainability هست. پس باید بدونیم که باید بهترین روش حل مساله اونی هست که ساده ترین روش باشه و به قابلیت نگهداری نرم افزار کمک کنه.

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

الگوهای طراحی به عنوان Best Practice های حل مساله در دنیای کدنویسی شناخته میشن و روش هایی هستن که در نهایت کمک میکنن ما یک نرم افزار با قابلیت نگهداری بالا داشته باشیم. الگوهای طراحی، اختراع (invent) یا ساخته نشدن بلکه به مرور زمان توسط برنامه نویس های مختلف کشف (discover) شدن و به صورت یک سری قاعده abstract معرفی شدن که در مسائل مختلفی میشه ازشون استفاده کرد.

شاید براتون سوال باشه چرا بهشون الگوی طراحی گفته میشه؟

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

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

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

چرا الگوهای طراحی مهمه؟

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

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

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

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

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

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

چطوری باید الگوهای طراحی رو یاد بگیریم؟

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

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

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

روش من برای انتقال این تجربه

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

چرا باید چند مثال و اونم مثال های واقعی برای هر الگو رو بررسی کنیم؟

خب واقعیت ماجرا اینه که مثال هایی که در اکثر جاها استفاده میشه،بر اساس مسائل صرفا تئوری و کار با موجودیت هایی مثل Car,Book,Animal,Human پیاده سازی شده و به ندرت در نرم افزارهای دنیای واقعی استفاده میشه و به خاطر همین موضوع باید مثال هایی از دنیای واقعی مطرح بشه.

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

آیا این دوره به درد من میخوره؟

  •  اگر تازه یک زبان برنامه نویسی شی گرا مثل PHP,Java,TypeScript یاد گرفتی و میخوای یاد بگیری در مراحل پیشرفته تر چطوری باید مسائل رو حل کنی، قطعا این دوره بهت کمک میکنه خیلی راحت تر به هدفت برسی.
  •  بدون شک یکی از مباحث اصلی مصاحبه های استخدامی و سوالات اون برای یک برنامه نویس، بحث الگوهای طراحی محسوب میشه، پس اگر مصاحبه استخدامی و سوالات فنی اون برات یک دغدغه هست قطعا این دوره میتونه بهت کمک کنه.
  •  افزایش مهارت فنی،یکی از راه هایی هست که برنامه نویس می تونه بر اساس اون درخواست افزایش حقوق بده، خب اگر تازه مثلا 6 ماه بیشتر هست که مشغول به کار شدی و تمایل داری حقوقت افزایش پیدا کنه میتونی بر اساس مهارت در الگوهای طراحی که منجر به کدنویسی بهتر میشه درخواست افزایش حقوق بدی.
  •  اگر تمایل داری وارد پروژه های سازمانی بشی و میخوای درک بهتری از شی گرایی داشته باشی،قطعا این دوره کمکت میکنه از یک زاویه دیگه به شی گرایی نگاه کنی.

دوره به چه روشی برگزار میشه؟

در ابتدای دوره با مفاهیم SOLID شروع میکنیم و به صورت کاربردی یاد میگیری که این مفاهیم دقیقا چی هستن، چرا باید ازشون استفاده کرد و کجا باید اونهارو رعایت کنی و به کار بگیری.

تعداد ۱۸ الگوی طراحی که کاربردهای بسیار زیادی دارن و در کتاب های مرجع تعریف شده است که این تعداد در ۳ دسته بندی با نام های Creational,Structural,Behavioral قرار گرفته است. ما بر اساس این دسته بندی ها برای هر الگوی طراحی تعدادی ویدیو شامل تعریف تئوری الگوی طراحی به همراه تعریف و راه حل چند مسئله کاربردی (بر اساس دنیای واقعی نرم افزار) بر اساس همان الگو در اختیارت قرار میدیم.

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

پیش نیازهای شرکت در این دوره چیه؟

برای اینکه بتونید در دوره شرکت کنید و نتیجه خوبی بگیرید ازش، حتما باید با یک زبان شی گرایی کار کرده باشید و مفاهیم شی گرایی مقدماتی رو بلد باشید.

زمان و روزهای برگزاری دوره چه طوری هست؟

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

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

آیا بعد از ثبت نام امکان انصراف وجود داره؟

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

این دوره واقعا چقدر تاثیر داره؟

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

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

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

پس یادتون باشه چیزی که از بقیه موارد مهم تره تمرکز و اولویت قرار دادن یادگیری این موضوع هست، چه میخواد با دوره باشه چه بدون دوره.

آموزش بر اساس چه پلتفرم و زبان برنامه نویسی خواهد بود؟

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

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

تفاوت اصلی این دوره با دوره های مشابه چیه؟

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

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

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

آیا این دوره با این قیمت واقعا ارزشش رو داره؟

الان می تونیم بگیم یک توسعه دهنده Junior یه حقوقی بین رنج ۴ الی ۶ میلیون تومن درآمد داره و یه توسعه دهنده Mid-Level بین ۸ الی ۱۲ تومن و در نهایت یک توسعه دهنده Senior از ۱۲ الی ۲۵ تومن حقوق دریافت می کنه.

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

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

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

این دوره
برای چه کسانی
مناسـب اسـت؟

  • برنامه نویسانی که از زبان تایپ اسکریپت برای توسعه برنامه های React استفاده می کنند.
  • برنامه نویسانی که از زبان تایپ اسکریپت برای توسعه برنامه های سمت Backend استفاده می کنند و می خواهند طراحی کدها را با کیفیت بالایی انجام دهند.
  • برنامه‌نویسانی که به‌دنبال حرفه‌ای تر شدن و کسب استانداردهای این حوزه هستند.
  • کسانی که قصد دارند به‌عنوان یک برنامه‌نویس حرفه‌ای مهاجرت کنند.
  • کسانی که عاشق حل مسئله و غرق شدن در حوزه‌های عمیق برنامه‌نویسی هستند.

این دوره
برای چه کسانی
مناسـب نیست؟

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

دموی جلسات و پروژه های دوره

دمو دوره الگوهای طراحی حرفه ای - TypeScript
دمو دوره الگوهای طراحی حرفه ای - TypeScript
دمو دوره الگوهای طراحی حرفه ای - TypeScript
دمو دوره الگوهای طراحی حرفه ای - TypeScript
دمو دوره الگوهای طراحی حرفه ای - TypeScript
دمو دوره الگوهای طراحی حرفه ای - TypeScript
دمو دوره الگوهای طراحی حرفه ای - TypeScript

ویژگی های دوره

ما به کیفیت و اثربخشی محصول خود اعتقاد داریم و به همین منظور گارانتی بازگشت وجه یک ماهه به شما ارائه می دهیم تا خریدی بدون ریسک و بدون نگرانی داشته باشید.
هزینه‌ای که بابت دوره پرداخت می‌کنید تا 1 ماه در اختیار خودِ شماست. اگر پس از خرید دوره به‌صورت جامع، به هر دلیلی از شرکت در آن منصرف شدید تا ١ ماه پس از خريد امكان انصراف و بازگشت كامل وجه برای شما درنظر گرفته شده است. برای انصراف از دوره لازم است در بازه زمانی تعیین شده درخواست خود را با پشتیبانی مطرح کرده و حداکثر ۲۵% از دوره را مشاهده کرده باشید. پس از انصراف همواره منتظر نظرات و پیشنهادات شما برای بهبود کیفیت دوره و نحوه ارائه آن‌ها هستیم و امیدواریم در حوزه موردنظر خود به موفقیت و فرصت‌های بزرگی دست پیدا کنید.

آموزش مهارت‌محور به این معنی‌ست که در طول دوره و باتوجه به میزان پیچیدگی هر مبحث آموزشی تمرین‌، آزمون و پروژه‌های مختلفی برای شما در نظر گرفته شده است تا یادگیری خود را تکمیل کنید. همچنین برگزاری وبینارهای متعدد و عضویت در گروه تلگرامی دوره امکان ارتباط با اساتید، منتورها و سایر دانشجویان را برای شما فراهم می‌کند. وضعیت آموزشی هر دانشجو برای منتورهای دوره قابل رصد و ارزیابی‌ست زیرا منتورها از بین دانشجویان برتر انتخاب شده‌اند و به‌خوبی با فرایند آموزشی و چالش‌های دوره آشنایی دارند. پایبندی به این متد آموزشی علاوه‌بر ارتقا سطح مهارتی که دارید، شما را با چالش هاى فنى و نحوه مدیریت آن‌ها آشنا مى كند و اين همان چيزى‌ست كه برای حضور در بازار كار به آن نياز داريد.

هیچ سوالی بی‌جواب نخواهد ماند. پس از ورود به دوره امكان پرسش و پاسخ و رفع اشكال براى شما فراهم است. شما می‌توانید در هر ساعتی از شبانه روز سوالات خود را مطرح کنید و اساتید یا منتورهای دوره در سريع‌ترين زمان ممكن به شما پاسخ خواهند داد. حضور در این فضای تعاملی و همراهی با دیگران می‌تواند در ارتقای مهارت‌های نرم دانشجویان و ایجاد یک رقابت سالم نقش موثری داشته باشد.

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

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

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

محتوای دوره‌ها همواره در اختیار شماست و لازم نیست نگران منقضی شدن آن و یا از بین رفتن پروفایل کاربری خود باشید چرا که بدون محدودیت زمانی و مکانی به آن دسترسی دارید. درضمن هر زمان که برخی مباحث آموزشی تغییر کرده و نیازمند به‌روزرسانی باشند، محتوای به‌روزشده سرفصل‌هایی که خریداری کرده‌اید در پنل کاربری شما در سایت 7learn.com قرار خواهد گرفت.

دانشجویان سابق متخصص سون لرن کجا استخدام شدند؟

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

در این دوره دانش فنی موردنیاز شما تدریس می‌شود، کافی‌ست نهایت استفاده را از آن داشته باشید تا مانند بسیاری از دانشجوهای موفق سون‌لرن، از فرصت های شغلی چنین شرکت‌های مطرحی بهره‌مند شوید.

و ده ها
شرکت دیگر

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

  • آماده سازی محیط توسعه منتشر شده ۱۱ دقیقه
  • نصب پکیج ها و ایجاد ساختار پروژه منتشر شده ۱۴ دقیقه
  • نصب ESLint و Express منتشر شده ۱۲ دقیقه
  • اصل Tell, Don\'t Ask منتشر شده ۱۸ دقیقه
  • اصل YAGNI منتشر شده ۱۰ دقیقه

اصول SOLID از موارد مهم در توسعه نرم افزار هستند که در هفته اول دوره این 5 اصل مهم رو به صورت کاملا کاربردی بررسی می کنیم.بررسی اصل Single Responsibility و پیاده سازی آن به صورت کاربردیبررسی اصل Open-Closed و پیاده سازی کاربردی آن + دیدگاه رابرت مارتین و برتراند میربررسی اصل Liskov Substitution و پیاده سازی کاربردی آنبررسی اصل Interface Segregation و پیاده سازی کاربردی آنبررسی اصل Dependency Inversion و پیاده سازی کاربردی آن

  • اصول SOLID - مفهوم Single Responsibility منتشر شده ۱۸ دقیقه
  • بررسی یک مثال SRP منتشر شده ۱۵ دقیقه
  • رفع مشکل نقض SRP منتشر شده ۱۲ دقیقه
  • اصول SOLID - مفهوم Open Closed منتشر شده ۱۸ دقیقه
  • بررسی مثال OCP منتشر شده ۱۲ دقیقه
  • رفع مشکل نقض OCP منتشر شده ۲۵ دقیقه
  • اصول SOLID - مفهوم Liskov Substitution منتشر شده ۸ دقیقه
  • بررسی مثال اول نقض LSP منتشر شده ۱۴ دقیقه
  • بررسی مثال دوم نقض LSP منتشر شده ۵ دقیقه
  • بررسی مثال سوم نقض LSP منتشر شده ۴ دقیقه
  • بررسی مثال چهارم نقض LSP منتشر شده ۵ دقیقه
  • اصول SOLID - مفهوم Interface Segregation منتشر شده ۶ دقیقه
  • بررسی مثال نقض ISP منتشر شده ۱۵ دقیقه
  • اصول SOLID - مفهوم Dependency Inversion منتشر شده ۹ دقیقه
  • بررسی مثال اول DIP منتشر شده ۱۴ دقیقه
  • بررسی مثال دوم DIP منتشر شده ۱۵ دقیقه

در هفته دوم ۲ الگوی مهم در دسته بندی Creational رو بررسی می کنیم. الگوی Factory Method و الگوی Abstract Factory که هر کدوم در بخش ایجاد اشيا می تونن به بهینه سازی کدهای ما کمک کنند.الگوی طراحی Factory Method یکی از الگوهای اصلی برای ساختن اشیاء محسوب میشه که کاربردهای زیادی داره. این الگو زمانی استفاده میشه که بخوایم یک یا چند عملیات خاص رو انجام بدیم و اون عملیات ها توسط کلاس های مختلفی قابل انجام هست. ما می تونیم بدون این الگو اون کلاس ها رو نمونه سازی کنیم و ازشون استفاده کنیم اما دردسر ما تا ...

  • مفهوم الگوی طراحی Factory Method منتشر شده ۱۳ دقیقه
  • مثال اول Factory Method منتشر شده ۲۳ دقیقه
  • مثال دوم Factory Method منتشر شده ۲۱ دقیقه
  • مثال سوم Factory Method منتشر شده ۱۰ دقیقه
  • مفهوم الگوی طراحی Abstract Factory منتشر شده ۱۱ دقیقه
  • مثال اول الگوی طراحی Abstract Factory منتشر شده ۲۲ دقیقه
  • مثال دوم الگوی طراحی Abstract Factory منتشر شده ۱۷ دقیقه
  • تمرین الگوی طراحی Abstract Factory منتشر شده ۵ دقیقه

در هفته سوم از این دوره به بررسی ۳ الگوی مهم Builder و Adapter می پردازیم. الگوی Builder در بخش Creational و الگوی Adapter در بخش Structural قرار می گیرد.از الگوی Builder برای ساختن اشیایی که ایجاد کردن آنها در حالت عادی پیچیدگی دارد استفاده می کنم. فرض کنید در یک پیام رسان قصد دارید یک پیام ایجاد کنید که مشخصات مختلفی دارد، یا مثلا یک پیام ایمیل بسیازید. در این دو حالت استفاده از Builder کار شما را خیلی راحت می کند. هم چنین در مواقعی که بخواید برای کلاس هاتون تست بنویسید اما اون کلاس ویژگی های ...

  • مفهوم الگوی طراحی Builder منتشر شده ۱۲ دقیقه
  • مثال اول الگوی طراحی Builder منتشر شده ۱۴ دقیقه
  • مثال دوم الگوی طراحی Builder منتشر شده ۱۷ دقیقه
  • مثال سوم الگوی طراحی Builder منتشر شده ۷ دقیقه
  • مفهوم الگوی طراحی Adapter منتشر شده ۸ دقیقه
  • مثال اول الگوی طراحی Adapter منتشر شده ۱۴ دقیقه
  • مثال دوم الگوی طراحی Adapter منتشر شده ۸ دقیقه
  • مثال سوم الگوی طراحی Adapter منتشر شده ۱۶ دقیقه

در این هفته میریم سراغ ۲ الگوی طراحی خیلی کاربردی Bridge و Composite که یادگیری و پیاده سازیشون کدنویسی رو خیلی لذت بخش میکنه.الگوی Bridge یا پل توی مواقعی که کدهای یک کلاس خیلی بزرگ میشن و عملا قابلیت ایجاد کردن چند انتزاع رو دارن استفاده میشه. به عنوان مثال فرض کنید از شما میخواین برای وب سایت بخشی برای صفحات بسازید که بتونن در هر فرمت دلخواهی اون رو نمایش بدن. اینجا خیلی راحت میشه از الگوی Bridge استفاده کرد. این الگو کمک می کنه بین Abstraction و Implementation یک Bridge یا پل ایجاد کنیم.الگو ...

  • مفهوم الگوی طراحی Bridge منتشر شده ۱۰ دقیقه
  • مثال اول الگوی طراحی Bridge منتشر شده ۲۱ دقیقه
  • مثال دوم الگوی طراحی Bridge منتشر شده ۱۵ دقیقه
  • مثال سوم و تمرین الگوی طراحی Bridge منتشر شده ۵ دقیقه
  • مفهوم الگوی طراحی Composite منتشر شده ۸ دقیقه
  • مثال اول الگوی طراحی Composite منتشر شده ۶ دقیقه
  • مثال دوم الگوی طراحی Composite منتشر شده ۹ دقیقه
  • مثال سوم از الگوی طراحی Composite منتشر شده ۹ دقیقه
  • تمرین الگوی طراحی Composite منتشر شده ۳ دقیقه

خب می رسیم به ۲ تای دیگه از خوبای الگوهای طراحی، Decorator و Facade.الگوی طراحی Decorator کلا خیلی خاص و متمایز هست و به شما کمک میکنه بدون دستکاری کدهای موجود یک رفتار رو به کلاس اضافه کنید و این خیلی مزیت بزرگی محسوب میشه. فرض کنید میخواید یک سیستم فاکتور یا Invoice ایجاد کنید. در این فاکتور ممکنه اقلام و خدمات مختلفی قرار بگیرن و هر کدومشون هم قیمت خاصی داشته باشن. ما می تونیم با استفاده از الگوی Decorator بدون اینکه نگران باشیم محصول یا خدمات جدیدی میخواد به فاکتور اضافه بشه اون رو پردازش کن ...

  • مفهوم الگوی طراحی Decorator منتشر شده ۱۰ دقیقه
  • مثال اول الگوی طراحی Decorator منتشر شده ۱۲ دقیقه
  • مثال دوم الگوی طراحی Decorator منتشر شده ۱۳ دقیقه
  • مثال سوم و تمرین الگوی طراحی Decorator منتشر شده ۵ دقیقه
  • مفهوم الگوی طراحی Facade منتشر شده ۷ دقیقه
  • مثال اول الگوی طراحی Facade منتشر شده ۱۵ دقیقه
  • مثال دوم الگوی طراحی Facade منتشر شده ۱۷ دقیقه
  • مثال سوم و تمرین الگوی طراحی Facade منتشر شده ۵ دقیقه

خب در این هفته هم میرسیم به ۲ تا الگو که خیلی به درد بهینه سازی در مصرف منابع میخورن.ما همیشه در نرم افزار با محدودیت منابع روبرو هستیم و در دنیای شی گرایی هم اشیاء بسته به داده ها و نوع اونها بخشی از RAM رو اشغال می کنن. اگر در برنامه ای مجبور باشیم تعداد زیادی شی داشته باشیم اونوقت ممکنه این دردسر ساز بشه و برای این مشکل می تونیم از الگوی FlyWeight استفاده کنیم. فرض کنید در یک بازی که در مرورگر اجرا میشه باید آیتم های مختلفی رو قرار بدین و این آیتم ها هر کدومشون یک شی هستن که داده های زیادی دا ...

  • مفهوم الگوی طراحی Proxy منتشر شده ۷ دقیقه
  • مثال اول الگوی طراحی Proxy منتشر شده ۱۵ دقیقه
  • مثال دوم الگوی طراحی Proxy منتشر شده ۱۰ دقیقه
  • مثال سوم و تمرین الگوی طراحی Proxy منتشر شده ۴ دقیقه
  • مفهوم الگوی طراحی FlyWeight منتشر شده ۸ دقیقه
  • مثال اول الگوی طراحی FlyWeight منتشر شده ۱۹ دقیقه
  • مثال دوم الگوی طراحی FlyWeight منتشر شده ۱۱ دقیقه
  • مثال سوم و تمرین الگوی طراحی FlyWeight منتشر شده ۳ دقیقه
  • وبینار پرسش و پاسخ منتشر شده ۲۲ دقیقه

در این هفته ۲ تا از الگوهای خوب و خوشگل رو میخوایم کار کنیم و یاد بگیرم.الگوی Chain Of Responsibility کاربردهای زیادی در حل مسائلی داره که نیازه عملیات هایی به صورت پشت سر هم اجرا و بررسی بشه. مثلا فرض کنیم در یک نرم افزار باید مشخص کنیم چه کاربری به یک بخش دسترسی داره و در این نحوه دسترسی شرایط و حالت های مختلفی وجود داره. اگر بخوایم به صورت ساده بنویسیم کدهای ما پر میشه از شرط های کر کثیف که هیچکی حاضر نیست نگاش کنه. برای حل این مورد خیلی راحت با استفاده از این الگو می تونیم مشکل رو حل کنیم. ی ...

  • مفهوم الگوی Chain of Responsibility منتشر شده ۱۰ دقیقه
  • مثال اول الگوی طراحی COR منتشر شده ۲۹ دقیقه
  • مثال دوم الگوی طراحی COR منتشر شده ۱۵ دقیقه
  • مثال سوم و تمرین الگوی طراحی COR منتشر شده ۴ دقیقه
  • مفهوم الگوی طراحی Command منتشر شده ۸ دقیقه
  • مثال اول الگوی طراحی Command منتشر شده ۱۶ دقیقه
  • مثال دوم الگوی طراحی Command منتشر شده ۱۴ دقیقه
  • مثال سوم و تمرین الگوی طراحی Command منتشر شده ۳ دقیقه

در این هفته به بررسی ۲ الگوی دیگه که برای مدیریت اطلاع رسانی و وضعیت ها استفاده میشن می پردازیم.الگوی طراحی Observer کلا هر جایی که قرار باشه بین کلاس ها و اشیاء اطلاعاتی رد و بدل بشه استفاده میشه. یک شی میخواد اطلاعاتش به روز رسانی بشه یا تغییر کنه و نیاز هست این تغییر به اطلاع یک شی دیگه برسه. ما نمی تونیم در این حالت از خود اون شی استفاده کنیم چون ممکنه با زیاد شدن تعداد این شی ها کار به جاهای باریک برسه و کد به گند کشیده بشه و در نهایت مدیریتش سخت میشه. با استفاده از الگوی Observer می تونیم ...

  • مفهوم الگوی طراحی Observer منتشر شده ۱۲ دقیقه
  • مثال اول الگوی طراحی Observer منتشر شده ۱۹ دقیقه
  • مثال دوم الگوی طراحی Observer منتشر شده ۷ دقیقه
  • مفهوم الگوی طراحی State منتشر شده ۹ دقیقه
  • مثال اول الگوی طراحی State منتشر شده ۲۴ دقیقه
  • مثال دوم الگوی طراحی State منتشر شده ۱۴ دقیقه
  • مثال سوم و تمرین الگوی طراحی State منتشر شده ۵ دقیقه

در این هفته می رسیم به ۲ تا از الگوهای طراحی که واقعا استفاده ازشون زیاده و خیلی هم شبیه هم هستن اما تفاوت های اساسی دارن.الگوی طراحی Strategy کلا مشخص میکنه وقتی میخوای یه کاری و انجام بدی راه و روشت برای انجام اون کار چیه؟ مثلا وقتی میخوای عملیات پرداخت رو انجام بدی، از کدوم روش استفاده می کنی؟ آنلاین،نقدی،چک. ما به اینها میگیم Strategy و در خیلی حالت ها کاربرد داره و کد مارو خیلی خیلی تمیز و تر و قابل توسعه می کنه.الگوی طراحی Template Method خیلی شبیه به Strategy هست با این تفاوت که در Strate ...

  • مفهوم الگوی طراحی Strategy منتشر شده ۷ دقیقه
  • مثال اول الگوی طراحی Strategy منتشر شده ۱۶ دقیقه
  • مثال دوم الگوی طراحی Strategy منتشر شده ۱۱ دقیقه
  • مثال و تمرین الگوی طراحی Strategy منتشر شده ۴ دقیقه
  • مفهوم الگوی طراحی Template Method منتشر شده ۶ دقیقه
  • مثال اول الگوی طراحی Template Method منتشر شده ۱۰ دقیقه
  • مثال دوم الگوی طراحی Template Method منتشر شده ۱۳ دقیقه
  • مثال سوم و تمرین الگوی طراحی Template Method منتشر شده ۵ دقیقه

در این هفته می ریم سراغ الگوهای محبوب Visitor و Mediator که کاربردهای جالبی دارن.الگوی طراحی Visitor کاربرد خیلی جالبی داره و به نظرم این خاصیت جالبش محبوبش کرده. وقتایی پیش میاد که نیاز داریم از کلاس های مختلف که قراردادهای مختلف دارن داده های خاصی رو محاسبه کنیم و بیرون بکشیم. در این حالت به احتمال زیاد ما هیچ ایده ای نداریم و دچار کدهای کثیفی میشم که انجام عملیات رو پیچیده می کنه. مثلا شما از کلاس های مختلفی می خواین برای یک کاربر امتیاز تعیین کنن و هر کلاسی در بخش جداگانه قرار داره. در این ح ...

  • مفهوم الگوی طراحی Visitor منتشر شده ۸ دقیقه
  • مثال Abstract از الگوی طراحی Visitor منتشر شده ۱۱ دقیقه
  • مثال دوم از الگوی طراحی Visitor منتشر شده ۱۶ دقیقه
  • مثال سوم از الگوی طراحی Visitor منتشر شده ۱۰ دقیقه
  • مهفوم الگوی طراحی Mediator منتشر شده ۶ دقیقه
  • مثال اول الگوی طراحی Mediator منتشر شده ۱۶ دقیقه
  • مثال دوم الگوی طراحی Mediator منتشر شده ۱۱ دقیقه
  • تمرین الگوی طراحی Mediator منتشر شده ۲ دقیقه

از چه کسی یاد میگیری؟

تصویر کیوان علی محمدی

کیوان علی محمدی

مدرس دوره حرفه‌ای الگوهای طراحی و وردپرس در سون لرن

  • 9 سال تجربه حرفه ای در توسعه نرم افزارهای تحت وب
  • توسعه دهنده PHP در شرکت عصر اینترنت
  • توسعه دهنده PHP در شرکت همیار وردپرس
  • توسعه دهنده فول استک PHP و JavaScript در استارتاپ فول فکر
  • مهندس نرم افزار در شرکت کسب و کار ایرانیان - چیلیوری
  • مهندس نرم افزار در سون لرن
  • مدیر فنی سون لرن
  • Technical Team Lead در شرکت اسنپ فود


سابقه تدریس

  • مدرس 2 دوره متخصص لاراول سون لرن
  • مدرس دوره متخصص جاوااسکریپت سون لرن
  • مدرس دوره لاراول سون لرن
  • مدرس 3 دوره متخصص وردپرس سون لرن
  • تدریس بیش از 22000 هزار نفر/ساعت دوره و کارگاه حضوری
  • تولید بیش از 11000 هزار ساعت آموزش ویدیویی برنامه نویسی وب

رزومه و نمونه تدریس
تصویر لقمان آوند

لقمان آوند
مدرس مهمان

مدیر و بنیان گذار سون‌لرن رزومه

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

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

برای یادگیری دیزاین پترن ها از کجا شروع کنیم؟ آیا پیش‌نیاز خاصی دارد؟

برای یادگیری دیزاین پترن ها از کجا شروع کنیم؟ آیا پیش‌نیاز خاصی دارد؟

قبل از شروع آموزش دیزاین پترن ها باید یکی از زبان های برنامه نویسی شی گرایی را بلد باشید. البته الزاما الگوهای طراحی در زبان های شی گرا استفاده نمی‌شود در زبان هایی که شی گرا نیستند (زبان‌های functional) هم استفاده می‌شوند.


یادگیری دیزاین پترن ها برای من چه مزیتی دارد؟

یادگیری دیزاین پترن ها برای من چه مزیتی دارد؟

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

یادگیری الگوهای طراحی برای چه افرادی مناسب است؟

یادگیری الگوهای طراحی برای چه افرادی مناسب است؟

یادگیری دیزاین پترن ها برای افرادی که در حوزه توسعه نرم افزار کار می‌کند مناسب است. مهم نیست که شما در چه پارادایمی (functional یا object oriented) کار می‌کنید. تسلط بر الگوهای طراحی باعث می‌شود بتوانید کدهای بهتری را طراحی کنید. کدهایی که قابلیت تست پذیری، خوانایی، توسعه پذیری، نگه داری بالاتری دارند. و قطعا افرادی که به الگوهای طراحی مسلط هستند موقعیت‌های شغلی و درآمد بهتری دارند.


کاربرد Design Patternها چیست؟

کاربرد Design Patternها چیست؟

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

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

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

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

انواع Design Pattern ها چیست؟

انواع Design Pattern ها چیست؟

الگوهای طراحی سه دسته اصلی دارند:

  • Creational patterns: معمولا راه حل هایی برای ایجاد کردن آبجکت ها (objects) ارائه می‌دهند. تا کدهایی داشته باشیم که قابلیت reuse داشته باشد.
  • Structural patterns: کمک می‌کنند ساختارهای بزرگتری ایجاد کنیم در حالی که انعطاف پذیری و بهینه بودن حفظ شود.
  • Behavioral patterns: این دسته به الگوریتم ها و نحوه انجام کار و responsibility بین آبجکت ها مرتبط است و زا این طریق به حل مسئله کمک می‌کند.

آیا یادگیری دیزاین پترن ها برای برنامه نویس های تایپ اسکریپت ضروری است؟

آیا یادگیری دیزاین پترن ها برای برنامه نویس های تایپ اسکریپت ضروری است؟

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

بهترین روش یادگیری دیزاین پترن ها چیست؟

بهترین روش یادگیری دیزاین پترن ها چیست؟

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

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

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

پس اگر با یک مدرس با تجربه و معتبر و تمرین و چالش‌پذیری یادگیری را شروع کنید مطمئن باشید بهترین نتیجه را می‌گیرید.

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

ثبت نام در این دوره مناسب افرادی است که انگیزه و تلاش لازم برای ارتقای وضعیت مهارتی و شغلی خود را دارند. این مورد در فرایند مشاوره اختصاصی با مدرس یا منتورهای دوره ارزیابی خواهد شد و پس از آن امکان ثبت نام در دوره برای شما فعال خواهد شد.

اطلاعات ضروری تماس برای جلسه مصاحبه:

نام کامل شما:
شماره موبایل:
ایمیل معتبر:

در یک جمله بنویسید چرا می خواهید در این دوره ثبت نام کنید؟

همین الان ثبت نام کن

الگوهای طراحی حرفه ای - TypeScript دسترسی سریع به جمع متخصصین بپیوندید ...
نقدی/اقساطی ثبت نام میکنم