دوره‌ها

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


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

دوره آموزش شی گرایی در php به صورت رایگان به صورت ویدیوهای آموزشی کوتاه و به زبان ساده

شی گرایی به مفهوم کلیدی پشت طراحی نرم افزار تبدیل شده است. پارادایم یا مفهوم oop در اکثر زبان‌های برنامه‌نویسی وجود دارد.

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

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

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

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

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

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

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

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

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

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

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

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

بهره وری (Efficiency)

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

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

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

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

حل مساله و چالش رو خیلی دوست دارم و رابطه خیلی خوبی با ریاضیات، برنامه‌نویسی و اقتصاد دارم. علاقه زیادی به هوش‌مصنوعی، یادگیری ماشین و موضوعات مرتبط دارم.