داستان این دوره از اونجایی شروع شد که یک روز مشغول به کار بودم که گزارش یک باگ خطرناک رو بهم دادن و گفتن باید سریع رفع بشه. منم همراه اون برنامه نویسی که اون قطعه کد رو قبلا توسعه داده بود مشغول دیباگ و بررسی کد شدیم و در کمال ناباوری متوجه شدم مشکل خیلی چیز سادهای بوده که احتمالا علتش درک نادرست برنامه نویس از نحوه رفتار اشیاء و پیادهسازی نادرست اون بود. ایشون یک شی درست میکرد و همون شی رو بر روی تعداد زیادی رکورد استفاده میکرد و این باعث میشد که کد تخفیف به شکل اشتباهی برای خیلی از کاربران ارسال بشه که در نتیجه به ضرر مالی شرکت ختم میشد. این موضوع باعث شد به این فکر کنم که خیلی از ماها ممکنه شی گرایی رو به صورت خیلی پیش پا افتاده یاد گرفته باشیم و واقعا درک درستی از دلیل و فلسفه و چرایی شی گرایی نداشته باشیم.
مفاهیم گنگ و غیر قابل درک
سالها پیش، خود من خیلی وقتها از خودم میپرسیدم که واقعا این شی گرایی چه مزیتی میتونه داشته باشه؟! بیشتر به این فکر میکردم که مثلا توی زبانی مثل PHP همون نوشتن توابع میتونه روش بهتری برای نوشتن کدها باشه و اگه یه سری کلاس و شی داشته باشیم بیشتر میخواد پیچیدگی به پروژه اضافه کنه اما خب این تا زمانی بود که هنوز شی گرایی رو به درستی درک نکرده بودم. بعد از اون یکی از لذتهای واقعی من در کدنویسی، مدل کردن و حل مساله با شی گرایی بوده و هست.
واقعیت اینه که خیلی از ماها مثل خود بنده شی گرایی رو با یک دید خیلی محدود و سطحی یاد گرفتیم، بسنده کردیم به آموزشهایی که صرفا میگفتن شی و کلاس و مثالهایی از درخت و کوه و پیتزا میزدن. قطعا این مثالها برای شروع خوب بود ولی از یه جایی به بعد دیگه خیلی نمیتونست به درک و فهم ما از شی گرایی کمک کنه.
برای اینکه ببینیم آیا درک درستی از این موضوع داشتیم یا نه بهتره این سوالات رو از خودمون بپرسیم!
آیا درک مناسبی از انواع اشياء در شی گرایی دارم؟
می تونم مشخص کنم که در چه زمانی از چه نوعی شی استفاده کنم؟
می تونم مشخص کنم چه مقدار کد باید در یک کلاس وجود داشته باشه؟
می تونم مشخص کنم چه کدهایی به صورت استاتیک باشه و چه کدهایی غیر استاتیک؟
می تونم مشخص کنم تسکها و عملیاتها رو به چه صورت بین کلاسهای مختلف تقسیم کنم؟
می تونم یک مدلسازی خوب از شی گرایی برای یک مساله با توجه به نیازهای مطرح شده داشته باشم؟
خب اگه اکثر این سوالات رو به درستی نمیتونید پاسخ بدید یا براتون خیلی گنگ و مبهمه، در جوابشون میتونم بگم شما هم درگیر همین مشکل عدم درک درست و صحیح از شی گرایی هستید.
خطر در کمین است!
کار از اونجایی خطرناک میشه که کسی که این شی گرایی رو به صورت سطحی درک کرده شروع به کار با فریمورکها میکنه و خب فریمورکی که تقریبا اکثر موارد پایهای رو حل کرده ابزار همیشگی اون شخص میشه. این خوشحالی موقتیه چون وقتی با پروژهای که به صورت ذاتی پیچیدگی داره رو به رو میشه، بدون تحلیل درست از مدلسازی مساله در بخشهای مختلف کدهایی رو تولید میکنه که به سال نرسیده هزینههای وحشتناکی برای نگهداریش ایجاد میکنه و احتمالا برنامه نویسهای جدید پیشنهاد بازنویسی جدید میدن و خب میدونیم که سازمانها و کسب و کارها هم اکثرا موافق بازنویسی مجدد یک سیستم نیستن و حق هم دارن چون تولید اون سیستم علاوه بر هزینه مالی زیاد، هزینه وحشتناکی از لحاظ زمانی ایجاد میکنه.
نتیجه میگیریم پیاده سازی درست یک مساله و مدل سازی خوب اون در شی گرایی میتونه کدهایی رو ایجاد کنه که در نهایت به راحتی میشه براشون تست نوشت، اونا رو توسعه داد و ازشون نگهداری کرد که که منجر به هزینه نگهداری کمتر با بهره وری بیشتر برای اون سازمان میشه و اینجاست که ارزش واقعی یک توسعه دهنده نرم افزار خودش رو نشون میده.
آیا مشکل ما فقط درک اشتباه از شی گرایی است؟
خیلیها این سوال براشون میاد که آیا مشکل ما فقط درک نادرست از شی گرایی است؟ آیا این محصول نرم افزاری تنها مشکلی که دارد پیاده سازی نشدن کدهای آن بر اساس یک ساختار درست شی گرایی است؟ هیچ مشکل دیگری ندارد؟
قطعا این سوالات همگی درست هستند، از مشکلات دیگهای که میتونه دردسرهای زیادی رو برای نگهداری یک کد بیس ایجاد کنه میتونیم عدم وجود تستهای خودکار، شناخت اشتباه از نیازمندیهای کاربر نهایی، عدم ترجمه صحیح نیازمندیها از سمت کسب و کار یا سازمان، عدم پیاده سازی معماری متناسب با نیازهای روز آن و ... نام ببریم.
خب چرا به شی گرایی اشاره میکنیم؟ چون این موضوع نسبت به اکثر موارد بالا (به جز موارد کسب وکار) پایهایتر محسوب میشه و اگر این رو اشتباه جلو بریم با یه درصد بالایی، در خیلی از موارد دیگه هم راه رو کج میریم.
این دوره قراره چه کمکی بکنه؟
هدف اصلی این دوره، مرور و باز تعریف مفاهیم شی گرایی از یک دیدگاه جدیده که به برنامه نویسان کمک میکنه در مواجهه با مسائلی که در شی گرایی مطرح میشه بتونن تصمیمهای بهتری بگیرن و کدهایی تولید کنن که هزینه نگهداری اون خیلی پایین باشه. با این روش هم خود برنامه نویس احساس بهتری نسبت به کدهای نوشته شده داره و لذت بیشتری از کدنویسی میبره و هم سازمان هزینههای کمتری برای تولید و نگهداری نرم افزار پرداخت میکنه.
دوره به چه شکلی برگزار میشه؟
این دوره به صورت ویدیوهای از پیش ضبط شده (تهیه شده از کلاس آنلاین) ارائه خواهد شد و محتوای ارائه شده در دوره به صورت سرفصل به سرفصل هست که در این بخشها صرفا کدهایی رو داریم که به عنوان Sample نوشته میشن، اما در بخش انتهایی دوره یک پروژه Meetup داریم که با فریمورک لاراول اون رو پیاده سازی میکنیم تا در یک پروژه با هدف مشخص استفاده از روشهای ارائه شده در دوره مرور بشه.
نمایش بیشتر
سرفصلهای دوره
درک شی گرایی
۶ جلسه
جلسه اول جلسه اول - بخش اول
۱ ساعت و ۶ دقیقه
جلسه دوم جلسه اول - بخش دوم
۴۶ دقیقه
جلسه سوم جلسه دوم - بخش اول
۱ ساعت و ۳ دقیقه
جلسه چهارم جلسه دوم - بخش دوم
۵۰ دقیقه
جلسه پنجم جلسه سوم - بخش اول
۱ ساعت و ۱۰ دقیقه
جلسه ششم جلسه سوم - بخش دوم
۱ ساعت
سرویسها در شی گرایی
۴ جلسه
جلسه اول جلسه چهارم - بخش اول
۱ ساعت و ۸ دقیقه
جلسه دوم جلسه چهارم - بخش دوم
۴۴ دقیقه
جلسه سوم جلسه پنجم - بخش اول
۵۹ دقیقه
جلسه چهارم جلسه پنجم - بخش دوم
۵۶ دقیقه
اشیاء غیر سرویسی در شی گرایی
۱۳ جلسه
جلسه اول جلسه ششم - بخش اول
۱ ساعت و ۶ دقیقه
جلسه دوم جلسه ششم - بخش دوم
۴۵ دقیقه
جلسه سوم جلسه هفتم - بخش اول
۱ ساعت و ۲ دقیقه
جلسه چهارم جلسه هفتم - بخش دوم
۲۳ دقیقه
جلسه پنجم جلسه هشتم - بخش اول
۵۷ دقیقه
جلسه ششم جلسه هشتم - بخش دوم
۴۵ دقیقه
جلسه هفتم جلسه نهم
۵۷ دقیقه
جلسه هشتم جلسه دهم - بخش اول
۵۶ دقیقه
جلسه نهم جلسه دهم - بخش دوم
۳۳ دقیقه
جلسه دهم جلسه یازدهم - بخش اول
۱ ساعت و ۴ دقیقه
جلسه یازدهم جلسه یازدهم - بخش دوم
۴۰ دقیقه
جلسه دوازدهم جلسه دوازدهم - بخش اول
۵۱ دقیقه
جلسه سیزدهم جلسه دوازدهم - بخش دوم
۴۸ دقیقه
پیاده سازی پروژه Meetup با لاراول
۷ جلسه
جلسه اول جلسه سیزدهم - بخش اول
۵۷ دقیقه
جلسه دوم جلسه سیزدهم - بخش دوم
۴۹ دقیقه
جلسه سوم جلسه چهاردهم - بخش اول
۱ ساعت و ۴ دقیقه
جلسه چهارم جلسه چهاردهم - بخش دوم
۴۴ دقیقه
جلسه پنجم جلسه پانزدهم
۱ ساعت و ۲۳ دقیقه
جلسه ششم جلسه پایانی - بخش اول
۱ ساعت و ۲ دقیقه
جلسه هفتم جلسه پایانی - بخش دوم
۳۴ دقیقه
نمایش بیشتر
با خیال راحت آموزش ببینید
ضمانت بازگشت وجه
خرید و ثبت نام شما در دورههای بلندمدت سون لرن بدون ریسک مالی
خواهد بود
آموزش مهارت محور
از مدرسین متخصص و با تجربه در بهترین شرکتهای ایران مهارت مورد
نیاز بازار کار را یاد میگیرید
جامعه برنامه نویسی فعال
پشتیبانی و پاسخ به سوالات خود را در جامعه برنامه نویسی فعال سون
لرن دریافت میکنید
ارزیابی فنی و امتیازدهی
برای فعالیتها و آزمونهای خود، امتیازات مختلفی برای ارزیابی
مهارت دریافت میکنید (از آذر 1402)
معرفی برترینها به بازار کار
دانشجویان فعالی که مستمر و منظم محتوای دورهها را دنبال میکنند،
در اولویت معرفی به بازار کار هستند
دسترسی راحت و همیشگی
شما بعد از تهیه دوره به محتوای دوره و آپدیتهای محتوایی دسترسی خواهید داشت
نتایج دورههای متخصص
در ۱۷ سال اخیر بیش از ۳۵ هزار نفر در سون لرن به
صورت تخصصی آموزش برنامه نویسی دیده اند و هزاران نفر از این عزیزان در شرکتهای مختلف استخدام شده
اند.
مهمترین عامل موفقیت دانشپذیرانی که موفق به استخدام و کسب
درآمد پس از دورههای سون لرن بوده اند، نظم و استمرار در پیگیری محتوای دوره و انجام تمرینها و
چالش پذیری آنها بوده است.