دوره هنر شی گرایی سون لرن
محتوای این دوره، شامل ویدئوها، فایلهای پیوست، پروژهها و یادداشتها، با هدف یادگیری سریعتر و مؤثرتر طراحی شدهاند. تمامی دوره های رایگان کده بهصورت رایگان و همچنین از طریق خرید اشتراکی در دسترس بوده و سعی شده همواره تمامی دوره ها بدون قفل و دارای آخرین آپدیت باشند. دوره ها فقط از سمت ربات تلگرامی رایگان کده قابل دانلود هستند.
دوره هنر شی گرایی سون لرن
محتوای این دوره، شامل ویدئوها، فایلهای پیوست، پروژهها و یادداشتها، با هدف یادگیری سریعتر و مؤثرتر طراحی شدهاند. تمامی دوره های رایگان کده بهصورت رایگان و همچنین از طریق خرید اشتراکی در دسترس بوده و سعی شده همواره تمامی دوره ها بدون قفل و دارای آخرین آپدیت باشند.
این دوره تا آخرین پارت منتشر شده از سوی سازنده (جلسه پایانی - بخش دوم) قرار گرفته است!
این دوره بدون هیچ لایسنس و قفل نرمافزاری با فرمت MP4 قرار گرفته است!
داستان این دوره از اونجایی شروع شد که یک روز مشغول به کار بودم که گزارش یک باگ خطرناک رو بهم دادن و گفتن باید سریع رفع بشه. منم همراه اون برنامه نویسی که اون قطعه کد رو قبلا توسعه داده بود مشغول دیباگ و بررسی کد شدیم و در کمال ناباوری متوجه شدم مشکل خیلی چیز سادهای بوده که احتمالا علتش درک نادرست برنامه نویس از نحوه رفتار اشیاء و پیادهسازی نادرست اون بود. ایشون یک شی درست میکرد و همون شی رو بر روی تعداد زیادی رکورد استفاده میکرد و این باعث میشد که کد تخفیف به شکل اشتباهی برای خیلی از کاربران ارسال بشه که در نتیجه به ضرر مالی شرکت ختم میشد. این موضوع باعث شد به این فکر کنم که خیلی از ماها ممکنه شی گرایی رو به صورت خیلی پیش پا افتاده یاد گرفته باشیم و واقعا درک درستی از دلیل و فلسفه و چرایی شی گرایی نداشته باشیم.
مفاهیم گنگ و غیر قابل درک
سالها پیش، خود من خیلی وقتها از خودم میپرسیدم که واقعا این شی گرایی چه مزیتی میتونه داشته باشه؟! بیشتر به این فکر میکردم که مثلا توی زبانی مثل PHP همون نوشتن توابع میتونه روش بهتری برای نوشتن کدها باشه و اگه یه سری کلاس و شی داشته باشیم بیشتر میخواد پیچیدگی به پروژه اضافه کنه اما خب این تا زمانی بود که هنوز شی گرایی رو به درستی درک نکرده بودم. بعد از اون یکی از لذتهای واقعی من در کدنویسی، مدل کردن و حل مساله با شی گرایی بوده و هست.
واقعیت اینه که خیلی از ماها مثل خود بنده شی گرایی رو با یک دید خیلی محدود و سطحی یاد گرفتیم، بسنده کردیم به آموزشهایی که صرفا میگفتن شی و کلاس و مثالهایی از درخت و کوه و پیتزا میزدن. قطعا این مثالها برای شروع خوب بود ولی از یه جایی به بعد دیگه خیلی نمیتونست به درک و فهم ما از شی گرایی کمک کنه.
برای اینکه ببینیم آیا درک درستی از این موضوع داشتیم یا نه بهتره این سوالات رو از خودمون بپرسیم!
- آیا درک مناسبی از انواع اشیاء در شی گرایی دارم؟
- می تونم مشخص کنم که در چه زمانی از چه نوعی شی استفاده کنم؟
- می تونم مشخص کنم چه مقدار کد باید در یک کلاس وجود داشته باشه؟
- می تونم مشخص کنم چه کدهایی به صورت استاتیک باشه و چه کدهایی غیر استاتیک؟
- می تونم مشخص کنم تسکها و عملیاتها رو به چه صورت بین کلاسهای مختلف تقسیم کنم؟
- می تونم یک مدلسازی خوب از شی گرایی برای یک مساله با توجه به نیازهای مطرح شده داشته باشم؟
خب اگه اکثر این سوالات رو به درستی نمیتونید پاسخ بدید یا براتون خیلی گنگ و مبهمه، در جوابشون میتونم بگم شما هم درگیر همین مشکل عدم درک درست و صحیح از شی گرایی هستید.
خطر در کمین است!
کار از اونجایی خطرناک میشه که کسی که این شی گرایی رو به صورت سطحی درک کرده شروع به کار با فریمورکها میکنه و خب فریمورکی که تقریبا اکثر موارد پایهای رو حل کرده ابزار همیشگی اون شخص میشه. این خوشحالی موقتیه چون وقتی با پروژهای که به صورت ذاتی پیچیدگی داره رو به رو میشه، بدون تحلیل درست از مدلسازی مساله در بخشهای مختلف کدهایی رو تولید میکنه که به سال نرسیده هزینههای وحشتناکی برای نگهداریش ایجاد میکنه و احتمالا برنامه نویسهای جدید پیشنهاد بازنویسی جدید میدن و خب میدونیم که سازمانها و کسب و کارها هم اکثرا موافق بازنویسی مجدد یک سیستم نیستن و حق هم دارن چون تولید اون سیستم علاوه بر هزینه مالی زیاد، هزینه وحشتناکی از لحاظ زمانی ایجاد میکنه.
نتیجه میگیریم پیاده سازی درست یک مساله و مدل سازی خوب اون در شی گرایی میتونه کدهایی رو ایجاد کنه که در نهایت به راحتی میشه براشون تست نوشت، اونا رو توسعه داد و ازشون نگهداری کرد که که منجر به هزینه نگهداری کمتر با بهره وری بیشتر برای اون سازمان میشه و اینجاست که ارزش واقعی یک توسعه دهنده نرم افزار خودش رو نشون میده.
آیا مشکل ما فقط درک اشتباه از شی گرایی است؟
خیلیها این سوال براشون میاد که آیا مشکل ما فقط درک نادرست از شی گرایی است؟ آیا این محصول نرم افزاری تنها مشکلی که دارد پیاده سازی نشدن کدهای آن بر اساس یک ساختار درست شی گرایی است؟ هیچ مشکل دیگری ندارد؟
قطعا این سوالات همگی درست هستند، از مشکلات دیگهای که میتونه دردسرهای زیادی رو برای نگهداری یک کد بیس ایجاد کنه میتونیم عدم وجود تستهای خودکار، شناخت اشتباه از نیازمندیهای کاربر نهایی، عدم ترجمه صحیح نیازمندیها از سمت کسب و کار یا سازمان، عدم پیاده سازی معماری متناسب با نیازهای روز آن و … نام ببریم.
خب چرا به شی گرایی اشاره میکنیم؟ چون این موضوع نسبت به اکثر موارد بالا (به جز موارد کسب وکار) پایهایتر محسوب میشه و اگر این رو اشتباه جلو بریم با یه درصد بالایی، در خیلی از موارد دیگه هم راه رو کج میریم.
این دوره قراره چه کمکی بکنه؟
هدف اصلی این دوره، مرور و باز تعریف مفاهیم شی گرایی از یک دیدگاه جدیده که به برنامه نویسان کمک میکنه در مواجهه با مسائلی که در شی گرایی مطرح میشه بتونن تصمیمهای بهتری بگیرن و کدهایی تولید کنن که هزینه نگهداری اون خیلی پایین باشه. با این روش هم خود برنامه نویس احساس بهتری نسبت به کدهای نوشته شده داره و لذت بیشتری از کدنویسی میبره و هم سازمان هزینههای کمتری برای تولید و نگهداری نرم افزار پرداخت میکنه.
دوره به چه شکلی برگزار میشه؟
این دوره به صورت ویدیوهای از پیش ضبط شده (تهیه شده از کلاس آنلاین) ارائه خواهد شد و محتوای ارائه شده در دوره به صورت سرفصل به سرفصل هست که در این بخشها صرفا کدهایی رو داریم که به عنوان Sample نوشته میشن، اما در بخش انتهایی دوره یک پروژه Meetup داریم که با فریمورک لاراول اون رو پیاده سازی میکنیم تا در یک پروژه با هدف مشخص استفاده از روشهای ارائه شده در دوره مرور بشه.
- جلسه اول – بخش اول
- جلسه اول – بخش دوم
- جلسه دوم – بخش اول
- جلسه دوم – بخش دوم
- جلسه سوم – بخش اول
- جلسه سوم – بخش دوم
- جلسه چهارم – بخش اول
- جلسه چهارم – بخش دوم
- جلسه پنجم – بخش اول
- جلسه پنجم – بخش دوم
- جلسه ششم – بخش اول
- جلسه ششم – بخش دوم
- جلسه هفتم – بخش اول
- جلسه هفتم – بخش دوم
- جلسه هشتم – بخش اول
- جلسه هشتم – بخش دوم
- جلسه نهم
- جلسه دهم – بخش اول
- جلسه دهم – بخش دوم
- جلسه یازدهم – بخش اول
- جلسه یازدهم – بخش دوم
- جلسه دوازدهم – بخش اول
- جلسه دوازدهم – بخش دوم
- جلسه سیزدهم – بخش اول
- جلسه سیزدهم – بخش دوم
- جلسه چهاردهم – بخش اول
- جلسه چهاردهم – بخش دوم
- جلسه پانزدهم
- جلسه پایانی – بخش اولش
- جلسه پایانی – بخش دوم
- این دوره مناسب چه کسانی است؟
- برنامهنویسان حرفهای که میخواهند مهارتهای الگوهای طراحی را در برنامههای خود بهبود بخشند.
- افرادی که علاقهمند به طراحی کد با استفاده از الگوهای طراحی معتبر هستند.
- توسعهدهندگانی که میخواهند کد خود را بر اساس استانداردهای بهتری طراحی کنند.
- افرادی که به دنبال ارتقای مهارتهای برنامهنویسی خود هستند و میخواهند به عنوان یک توسعهدهنده حرفهای شناخته شوند.
- این دوره مناسب چه کسانی نیست؟
- افرادی که به تازگی وارد عرصه برنامهنویسی شدهاند و مفاهیم پایهای برنامهنویسی را هنوز یاد نگرفتهاند.
- کسانی که به دنبال دورههایی با محتوای دیگر در زمینههای مختلف هستند و علاقهای به آموزش الگوهای طراحی ندارند.
- افرادی که زمان کافی برای تمرین و یادگیری مفاهیم پیچیده الگوهای طراحی را ندارند.
بله، این دوره برای تمامی سطوح دانش مناسب است و هیچ دانش پیشینی در زمینه هنر شی گرایی نیاز نیست.
بله،این دوره به طور خاص برای کاربردهای واقعی و پروژههای حرفهای طراحی شده است.
مدت زمان بسته به سطح شما و میزان تمرین و تلاش شما متغیر است، اما با تمرین منظم و پیگیری، میتوانید در مدت زمان کوتاهی به تسلط بر هنر شی گرایی برسید.