آموزش شی گرایی قدرتمندترین ابزار برنامه نویسی
در درسمن بعد از برگزاری دوره هایی از زبان های مختلف برنامه نویسی تصمیم به برگزاری یک دوره آموزشی متفاوت از برنامه نویسی کردیم تا نیازهای اساسی یک برنامه نویس برای تحلیل پروژه را تامین کنیم.
دراین دوره با تحلیل و بررسی مثالهایی شما را در فهم شی گرایی یاری میکنیم.
پروژه 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 ممکن است پیچیدهتر باشد و کامپایل آن بیشتر طول بکشد.
جمعبندی:
در دوره آموزش شی گرایی، فقط به تحلیل پروژه ها میپردازیم و شما با کاربرد و مفهوم شی گرایی آشنا میشوید به علت هم پوشانی بودن محتوا برای تمامی زبانهای برنامه نویسی وارد محیط کدنویسی نمیشویم.
سلام امین عزیز، ممنون از محبتت امیدارم دوره براتون کاربردی بوده باشه. حتما تهیه میکنیم.