هنر شی گرایی

با تدریس   کیوان علی محمدی
مهندس نرم افزار در شرکت LTP (هلند)

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

هنر شی گرایی - درک مفاهیم شی گرایی

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

مفاهیم گنگ و غیر قابل درک

سال‌ها پیش، خود من خیلی وقت‌ها از خودم می‌پرسیدم که واقعا این شی گرایی چه مزیتی می‌تونه داشته باشه؟! بیشتر به این فکر می‌کردم که مثلا توی زبانی مثل PHP همون نوشتن توابع می‌تونه روش بهتری برای نوشتن کدها باشه و اگه یه سری کلاس و شی داشته باشیم بیشتر می‌خواد پیچیدگی به پروژه اضافه کنه اما خب این تا زمانی بود که هنوز شی گرایی رو به درستی درک نکرده بودم. بعد از اون یکی از لذت های واقعی من در کدنویسی، مدل کردن و حل مساله با شی گرایی بوده و هست.

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

برای اینکه ببینیم آیا درک درستی از این موضوع داشتیم یا نه بهتره این سوالات رو از خودمون بپرسیم!

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

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

خطر در کمین است

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

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

آیا مشکل ما فقط درک اشتباه از شی گرایی است؟

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

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

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

این دوره قراره چه کمکی بکنه؟

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

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

این دوره به صورت جلسه‌های آنلاین (نه ویدیوی از قبل ضبط شده) برگزار می‌شه که دانشجویان در هر جلسه به صورت آنلاین به همراه استاد در جلسه حضور دارند. هر جلسه ۲ ساعت زمان داره که بسته به محتوای هر جلسه حدود ۱.۵ ساعت از جلسه به ارائه محتوا و نیم ساعت باقی مانده به پرسش و پاسخ در رابطه با محتوای اون جلسه اختصاص پیدا می‌کنه.

محتوای ارائه شده در دوره به صورت سرفصل به سرفصل هست که در این بخش‌ها صرفا کدهایی رو داریم که به عنوان Sample نوشته می‌شن، اما در بخش انتهایی دوره یک پروژه Meetup داریم که با فریمورک لاراول اون رو پیاده سازی می‌کنیم تا در یک پروژه با هدف مشخص استفاده از روش‌های ارائه شده در دوره مرور بشه.

زمان شروع دوره و ساعت های برگزاری اون در هفته به چه صورت هست؟

این دوره از ۱۳ خرداد ۱۴۰۲ هر هفته یک جلسه روز شنبه ساعت ۱۸ الی ۲۰ برگزار می‌شه.

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

بله قطعا، تا ۳ جلسه اول اگه فک کردین این دوره چیز خاصی به شما اضافه نمی‌کنه می تونین درخواست بازگشت وجه بدین و به صورت ۱۰۰ درصد وجه زمان ثبت نام‌تون رو دریافت کنید.

مطمئن نیستم که این دوره به من کمک کنه تا برنامه نویسی بهتری باشم!

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

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

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

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

  • کسانی که به شکل درست بر روی شی گرایی تسلط دارند

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

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

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

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

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

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

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

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

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

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

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

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

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

  • بخش اول منتشر شده ۶۷ دقیقه
  • بخش دوم منتشر شده ۴۷ دقیقه

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

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

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

مهندس نرم افزار در شرکت LTP (هلند)

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

سابقه تدریس

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

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

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

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

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

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

نیاز به مشاوره تخصصی دارید؟

ثبت درخواست مشاوره رایگان:
هنر شی گرایی دسترسی سریع به جمع متخصصین بپیوندید ...
نقدی/اقساطی ثبت نام میکنم