Если видео недоступно для просмотра, попробуйте выключить блокировщик рекламы.

PHP как и любой другой классовый язык, уделяет очень много внимания организации классов. Все это делается ради возможности лучше переиспользовать код (в рамках классового подхода, без классов эти ухищрения не нужны) и допускать меньше ошибок.

С одной стороны это хорошо, но с другой, текущих возможностей настолько много, что одну и ту же задачу можно реализовать десятками способов. Количество комбинаций разных подходов порождает целые школы и направления по тому как надо писать код. Как часто нужно использовать наследование? Где применяются абстрактные классы? А анонимные? Зачем нужны трейты? Как совмещать подтипы и иерархии?

В этом курсе, мы глубоко окунемся в организацию классов, познакомимся с концепций наследования. Научимся строить иерархии классов правильно, с учетом принципа подстановки Лисков. В конце концов узнаем о том, почему наследование почти всегда плохой способ организации кода (но популярный потому что легко сделать) и лучше предпочитать композицию наследованию.

Наследование тянет за собой много нового. Здесь появляются абстрактные классы, финальные классы, возможность переопределять поведение. Возникают шаблоны проектирования, специфичные только для наследования. Наследование влияет на то как работает полиморфный код (но не необходимо для него). Все это требует отдельного рассмотрения.

В конце концов, мы познакомимся с действительно интересной концепций – трейтами (их иногда называют миксинами). Трейты предлагают гораздо более жизнеспособный механизм расширения функциональности лишенный недостатков наследования.


Дополнительные материалы

  1. Джо Армстронг об Elixir, Erlang, ФП и ООП
Мы учим программированию с нуля до стажировки и работы. Попробуйте наш бесплатный курс «Введение в программирование» или полные программы обучения по Node, PHP, Python и Java.

Хекслет

Подробнее о том, почему наше обучение работает →