لیست جلسات دوره
مهدی عباسی
مهدی عباسی هستم، مسلط به حداقل ۲۰ زبان مطرح برنامه نویسی به صورت پیشرفته، مدیر عامل شرکت آریا نرم افزار و بنیانگذار آکادمی درسمن، مسلط به تدریس دروس تخصصی کاردانی و کارشناسی کامپیوتر، پایگاه داده ها، برنامه نویسی پیشرفته، مبانی برنامه نویسی، مباحث ویژه طراحی وب و .... مشاهده رزومه
سوالات متداول
شی گرایی چیست و چرا یادگیری آن برای برنامه نویسان از واجبات است؟
شی گرایی بر 4 اصل: کپسوله سازی، ارث بری، انتزاع و چند ریختی استوار است، همانطور که می دانید، تمامی زبان های برنامه نویسی مطرح دنیا، از شی گرایی استفاده کرده اند و با کمی تفکر به این نتیجه خواهید رسید که شی گرایی جز مهم ترین مباحث برنامه نویسی می باشد که هر برنامه نویسی می بایست به آن مسلط شود، ممکن است یک برنامه نویس سال ها تجربه داشته باشد اما هنوز درک درستی از شی گرایی را نداشته باشد، با مشاهده این دوره یک سر و گردن از دوستان و همکاران برنامه نویس خود پیشی خواهید گرفت و دیدگاه دقیق تر، واضح تر و اصولی تری نسبت به شی گرایی پیدا خواهید کرد.
این آموزش شی گرایی مناسب چه زبان های برنامه نویسی می باشد؟
جالب است بدانید این دوره مختص زبان برنامه نویسی خاصی نمی باشد، شما با هر زبان شی گرایی که کار کرده اید می توانید به مشاهده این دوره بپردازید و درک درستی را از شی گرایی پیدا کنید و از مطالب جذاب و کاربردی گفته شده نهایت استفاده را ببرید و در پروژه های خود استفاده کنید.
برای شروع این دوره چه مفاهیمی از برنامه نویسی نیاز است؟
پیش از شروع این دوره برای درک مفاهیم و شیوه استفاده باید به یک زبان برنامه نویس شی گرا و مباحث اولیه و پایه (مبانی برنامه نویسی) آشنا باشید.
مفاهیم شی گرایی برای توسعه دهندگان و برنامه نویسان چه مزیتی دارد؟
افزایش امنیت برنامه، کاهش هزینه نگهداری، قابلیت استفاده مجدد، تحلیل ساده تر برنامه و... از مزایای برنامه نویسی شی گرا می باشد. هرچند مفهوم شی گرایی در ابتدا پیچیده به نظر می آید ولی در دراز مدت در پروژه های بزرگ بسیار کاربردی است و می توانید پروژه های بزرگ را به بخش های کوچک تقسیم کنید و به صورت گروهی روی پروژه کار کنید.
تفاوت برنامه نویسی شی گرا نسبت به برنامه نویسی های دیگر چیست؟
برنامه نویسی شی گرا نسبت به برنامه نویسی های دیگر به علت انعطاف و کارایی بالا، بین برنامهنویسان از محبوبیت خاصی برخوردار است. تفاوت اصلی بین برنامه نویسی ساخت یافته و شی گرا در این است که تمرکز برنامه نویسی ساختاری به منظور ایجاد ساختار برنامه به سلسله مراتب زیر برنامه ها است، در حالی که تمرکز شی گرا در تجزیه کار برنامه نویسی در اشیاء است که داده ها و روش ها را محاصره می کند. امنیت برنامه نویسی و کد های ساخت یافته از برنامه نویسی شی گرا کمتر می باشد.
نظرات دانشجویان
این دوره عالیه خدا قوت به استاد عباسی عزیز. آموزش جاوا سمت سرور هم قرار بدین تا قسمت آموزش سایت برای جاوا تکمیل بشه
سلام امین عزیز، ممنون از محبتت امیدارم دوره براتون کاربردی بوده باشه. حتما تهیه میکنیم.
سلام امکانش هست پروژه های این دوره بیشتر بشه؟ یا مثل دوره طراحی الگوریتم؛ چندین بخش دیگه هم اضافه بشه ؟
سلام امیر جان وقتتون بخیر، قرار است یک دوره دیگه نیز براتون برگزار کنیم اما تاریخش مشخص نیست.
سلام وقت بخیر میشه این دوره رو قسطی خریداری کرد؟
سلام وقتتون بخیر، امکانش وجود نداره ولی خب به پیج اینستاگرام دایرکت بدید احتمالا دوستان بتونن کد تخفیف بدن یا خاص برای شما قسط بندیش کنند.
سلام خسته نباشید، من این دوره رو آنلاین شرکت کردم این دوره خیلی در تحلیل پروژه ها و کدنویسی اصولی بهم کمک کرد ممنونم از استاد عباسی تمامی نکته های تحلیل پروژه رو آموزش دادن
سلام دوست عزیز، از لطف شما متشکریم، اگر این دوره برایتان مناسب و کاربردی بود لطفا آن را به سایر دوستان خود نیز معرفی کنید.
سلام در این دوره با چه زبان برنامه نویسی کارشده؟
سلام وقتتون بخیر، این دوره زبان برنامه نویسی خاصی ندارد، یعنی کدنویسی داخلش تدریس نشده است، در این دوره به اصول تحلیل و طراحی شی گرایی پرداخته شده است که جواب این سوالتان را دقیقا در بخش سوالات متداول داده ایم.
در این دوره سعی کرده ایم به سمت و سوی یک زبان برنامه نویسی خاص نریم و آموزش طوری باشد که مناسب هر برنامه نویس با هر زبان شی گرایی که کار میکند باشد.
سلام وقت بخیر، ممنون بابت این دوره خوبی که منتشر کردید واقعا یادگیری شی گرایی نیاز هر برنامه نویسی هست موفق و سربلند باشید
سلام و درود خدمت شما، بله همانطور که فرمودید این مبحث نیاز همه برنامه نویسان می باشد، امیدواریم با حمایت از این دوره و استقبال شما عزیزان، دوره های دیگه ای در این راستا برایتان تهیه کنیم.
توضیحات دوره
آموزش شی گرایی قدرتمندترین ابزار برنامه نویسی
در درسمن بعد از برگزاری دوره هایی از زبان های مختلف برنامه نویسی تصمیم به برگزاری یک دوره آموزشی متفاوت از برنامه نویسی کردیم تا نیازهای اساسی یک برنامه نویس برای تحلیل پروژه را تامین کنیم.
دراین دوره با تحلیل و بررسی مثالهایی شما را در فهم شی گرایی یاری میکنیم.
پروژه 1: تحلیل اپلیکیشن ویندوزی موسسه متون خارجی به زبان فارسی
پروژه 2: تحلیل سیستم حقوق یک شرکت نرم افزاری
پروژه 3: تحلیل اپلیکیشن ویندوزی رزرو بلیط اتوبوس
پروژه 4: تحلیل وب سایت معرفی کارگاه های هنردستی
پروژه 5: تحلیل سیستم پشتیبانی سایت (ارسال و دریافت تیکت)
مفهوم وکاربرد شی گرایی
اگر تصمیم به یادگیری این دوره گرفتید به شما تبریک میگویم چون برای هر زبان برنامه نویسی، یادگیری شی گرایی از واجبات است و در پیشبرد پروژه ها به شما کمک زیادی میکند تا پروژه های خوب و با کیفیت بنویسیم بدون شک نیاز داریم شی گرایی را یاد بگیریم و درست استفاده کنیم، پس از یادگیری آن غافل نشوید. شی گرایی و مفهوم کلاس از قدرتمندترین ابزارهای برنامه نویسی هستند، امروزه محیط های پایگاه داده به شدت وابسته به شی گرایی شدند. در ادامه با ما همراه باشید تا با دنیای شی گرایی بیشتر آشنا شوید.
انواع روشهای برنامه نویسی
برنامه نویسی ساختیافته (structured programming):
برنامه نویسی ساخت یافته روشی برای سازماندهی و کد کردن برنامه هاست. یک برنامه بزرگ به قسمتهای کوچکتر تقسیم میشود به طوری که هر قسمت وظیفه انجام یک بخش را دارد .
برنامه نویسی رویهای (procedural programming):
برنامهنویسی رویهای را میتوان به عنوان یک مدل برنامهنویسی تعریف کرد که بر اساس مفهوم فراخوانی از برنامهنویسی ساختاریافته مشتق شده است. رویه ها که به عنوان روال، زیر روال یا توابع نیز شناخته می شوند، به سادگی شامل یک سری مراحل محاسباتی هستند که باید انجام شوند. در طول اجرای یک برنامه، هر رویه داده شده ممکن است در هر نقطه فراخوانی شود، از جمله توسط سایر رویه ها یا خودش.
برنامه نویسی شی گرا (object oriented programming):
برنامه نویسی شی گرا را می توان به عنوان یک مدل برنامه نویسی تعریف کرد که بر اساس مفهوم اشیا است. آبجکت ها شامل داده ها به صورت صفت و کد به شکل متدها هستند. در برنامه نویسی شی گرا، برنامه های کامپیوتری با استفاده از مفهوم اشیایی طراحی می شوند که با دنیای واقعی تعامل دارند. زبانهای برنامه نویسی شی گرا متنوع هستند اما محبوب ترین آنها مبتنی بر کلاس هستند، به این معنی که اشیاء نمونه هایی از کلاس ها هستند که نوع آنها را نیز تعیین می کنند.
برنامه نویسی شی گرا به علت انعطاف بالایی که دارد نسبت به برنامه نویسی های دیگر از محبوبیت بالایی در بین برنامه نویسان برخوردار است. در پروژههای بزرگ وقتی برنامه ها پیچیده میشوند برای حل نیازهایی مثل دسترسی راحت تر، امنیت بیشتر دادهها، استفاده مجدد از کدها و... باید از یک زبان برنامه نویسی استفاده کنید که این ویژگی را داشته باشید در اصل این موارد از ویژگی های شاخص زبان شی گرایی می باشد.
اصول برنامه نویسی شی گرا:
برنامه نویسی شی گرا بر اساس چهار اصل زیر شکل گرفته است:
- کپسوله سازی(Encapsulation)
- انتزاع (Abstraction)
- وراثت(Inheritance)
- چندریختی(Polymorphism)
در ادامه به روش ساده این موارد را توضیح میدهیم.
کپسوله سازی
ویژگی های هرشی در محدوده کلاس تعریف میشوند که برای کنترل و دسترسی به آنها محدوده ای تعیین شده است دو حالت private و public این محدوده را برای ما مشخص میکنند. در حالت Private اجازه دسترسی از بیرون کلاس به درون کلاس داده نمیشود و فقط در حالت public است که میتوانیم به اجزای درون کلاس دسترسی داشته باشیم. این ویژگی باعث بالا رفتن امنیت داده ها میشود.
انتزاع
انتزاع به این معنی است که ما به جای یک شی خاص روی ویژگیهای اساسی شی تمرکز می کنیم انتزاع فرآیند برداشتن یا حذف ویژگی ها از چیزی به منظور کاهش آن به مجموعه ای از ویژگی های اساسی است. در برنامه نویسی شی گرا، انتزاع یکی از سه اصل اصلی است (همراه با کپسوله سازی و وراثت). از طریق فرآیند انتزاع، یک برنامه نویس برای کاهش پیچیدگی و افزایش کارایی، همه داده های مربوط به یک شی را به جز داده های مربوطه پنهان می کند. انتزاع هم به کپسوله کردن و هم به پنهان کردن داده ها مربوط می شود.
در فرآیند انتزاع، برنامه نویس تلاش میکند تا اطمینان حاصل کند که موجودیت به گونه ای نامگذاری شده است که معنادار باشد و تمام جنبه های مربوط را شامل شود و هیچ یک از جنبه های اضافی را در بر نداشته باشد. اینترفیسها و کلاسهای Abstract ابزاری برای مفاهیم انتزاعی هستند.
وراثت
وراثت مفهومی هست که برای استفاده مجدد از کد در سطح class های برنامه به وجود آمده است اجازه میدهد. زمانی که یک کلاس تمامی یا برخی از قابلیت هایش را از کلاس دیگری بگیرد، این کلاس اصطلاحاً از کلاس دیگر ارث بری می کند. پدر و فرزندی را در نظر بگیرید که پدر مشخصات مخصوص خود را دارد و فرزند او میتواند همه خصوصیات او را به ارث ببرد و خصوصیتهای دیگری هم داشته باشد که پدرش ندارد این مفهوم ارث بری است.
چندریختی
چهارمین اصل شی گرایی که بررسی خواهیم کرد چند ریختی (Polymorphism) است. زمانی که یک شی می تواند در موارد مختلف چندین شکل داشته باشد را چندریختی میگویند.
با استفاده از متدهایی که هم نام هستند ، ولی پارامترهای ورودیشون در تعداد، نوع و ترتیب متفاوت باشه (Method overloading) و بازنویسی متدی از کلاس اصلی ، در درون کلاس هایی که ازش ارث بردن (Method overriding)میتوانیم چند ریختی را پیاده سازی کنیم.
بهترین زبان های برنامه نویسی شی گرا
در ادامه قصد داریم به بررسی بهترین و پرکاربردترین زبان های برنامه نویسی شی گرا بپردازیم.
پایتون
یکی از بهترین چیزهایی که در مورد پایتون وجود دارد این است که یک زبان همه منظوره است که می تواند در بسیاری از موارد استفاده شود. با این حال، یکی از دلایلی که این زبان شی گرا خاص در بالای این فهرست قرار گرفته است این است که یکی از مهمترین زبانها برای یادگیری ماشین و علم داده است. به احتمال زیاد زبانی را که برای این دو هدف مناسب تر باشد، پیدا نکنید. در دوره آموزش پایتون مبحث شی گرایی بصورت جامع و کاربردی تدریس شده است برای مشاهده آموزش به دوره پایتون مقدماتی مراجعه کنید.
جاوا
بدون شک جاوا یکی از پرکاربردترین زبان های شی گرا در بازار است. بخشی از دلیل استفاده گسترده از جاوا این است که یکی از زبان های رسمی برای توسعه اندروید است. جاوا با شعار "یک بار بنویس، هرجا اجرا شود" ایجاد شد که باعث می شود برای بسیاری از برنامه ها کار کند. و با 100 درصد همراهی جاوا با مفاهیم و اصول شی گرایی، قابل درک است که چرا در این لیست قرار گرفته است. جهت شروع یادگیری زبان محبوب جاوا میتوانید به دوره آموزش جاوا مراجعه کنید.
سی شارپ
#C یکی دیگر از زبان های شی گرا همه منظوره است. این زبان توسط مایکروسافت در سال 2000 به عنوان بخشی از ابتکار NET. توسعه داده شد و شباهت هایی با جاوا، سی و سی پلاس پلاس دارد. سی شارپ نیز به گونه ای طراحی شده است که سایر زبان ها می توانند از آن استفاده کنند. یکی از کاربردهای اصلی سی شارپ برای برنامه های دسکتاپ و وب است که آن را به گزینه ای کاملاً محبوب برای توسعه دهندگانی تبدیل می کند که به دنبال ایجاد نرم افزارهوشمند هستند. برای یادگیری این زبان دوستداشتنی میتوانید از دوره آموزش سی شارپ با تدریس فوق العاده مهندس مهدی عباسی استفاده کنید.
مزایا و معایب برنامه نویسی شی گرا
قبل از شروع به یادگیری برنامه نویسی بهتراست مزایا و موانع آن را بررسی کنیم تا به درک درستی از مفاهیم برسیم در ادامه مطلب به مزایا و معایب زبان برنامه نویسی شی گرا میپردازیم.
مزایا:
- افزایش امنیت برنامه
- قابلیت استفاده مجدد
- بهره وری توسعه نرم افزار
- قابل ارتقا و مقیاس پذیر
- تحلیل سادهتر برنامه
- انعطاف پذیری
- کاهش هزینه نگهداری
معایب:
مدل برنامه نویسی شی گرا به دلایلی مورد انتقاد توسعه دهندگان قرار گرفته است. بزرگترین مشکلات برنامه نویسی شی گرا (OOP ) این است که بیش از حد بر مؤلفه داده توسعه نرم افزار تأکید می کند و به اندازه کافی روی محاسبات یا الگوریتم ها تمرکز نمی کند. همچنین، نوشتن کد OOP ممکن است پیچیدهتر باشد و کامپایل آن بیشتر طول بکشد.
جمعبندی:
در دوره آموزش شی گرایی، فقط به تحلیل پروژه ها میپردازیم و شما با کاربرد و مفهوم شی گرایی آشنا میشوید به علت هم پوشانی بودن محتوا برای تمامی زبانهای برنامه نویسی وارد محیط کدنویسی نمیشویم.
نظر شما در تصمیم دیگران اثرگذار است.
لطفا برای همراهان درسمن و بهتر شدن دوره نظر خود را بنویسید.