دوره‌ها

آموزش برنامه نویسی شی گرا در PHP


مجتبی پاکزاد مجتبی پاکزاد

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

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

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

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

oop می‌تواند از جنبه‌های مختلفی بررسی شود به ویژه هنگامی که هزینه‌های نگهداری و زمان توسعه را در نظر بگیرید. از مزایای اصلی شی گرایی می‌توان موارد زیر را نام برد:

قابلیت استفاده مجدد (Reusability) در شی گرایی

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

بنابراین هنگامی که سایر توسعه دهندگان همین مشکلات را داشته باشند می‌توانند از کلاس شما در پروژه خود استفاده کنند بدون اینکه بر روند کاری فعلی تاثیری بگذارد. اینکار شما را در برابر DRY مصون نگه می‌دارد که بدین معنی است که کد تکراری ننویسیم یا چرخ را دوباره اختراع نکنیم.

در دوره آموزش شی گرایی php به Reusability به صورت کامل پرداخته ایم.

ریفکتورینگ (Refactoring) در شی گرایی

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

قابلیت توسعه (Extensible) در شی گرایی php

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

تعمیر و نگهداری (Maintenance)

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

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

بهره وری (Efficiency)

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

علاوه بر آن، در شی گرایی می‌توانید راه حل‌هایی با رویکردهای بسیار بهتر نسبت برنامه نویسی رویه گرا پیدا کنید.

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

دوره آموزش شی گرایی باورژن چه ویژگی‌هایی دارد؟

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

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

درس‌ها

1
مقدمه
01:14
2
کلاس (Class)
06:12
3
وراثت (Inheritance)
12:23
4
کپسوله سازی (Encapsulation)
06:44
5
چندریختی (Polymorphism)
07:48
6
نیم اسپیس (Namespace)
04:25
7
ثابت‌ها (Constants)
05:58
8
عملگر تفکیک‌پذیری محدوده دسترسی (Scope Resolution Operator)
02:06
9
متدهای جادویی (Magic Methods)
01:02:35
10
کلاس‌های ناشناس (Anonymous Class)
01:17
11
Abstract
16:51
12
اینترفیس (Interface)
02:26
13
مقایسه آبجکت‌ها (Compare Objects)
04:25
14
تریت (Trait)
21:01
15
Type Declaration
03:35
16
زنجیره متدها (Method chaining)
13:34
17
Late Static Binding
02:57