Включено в курс
Чему вы научитесь
- Понимать разницу между разными видами полиморфизма и решаемые ими задачи
- Распознавать и применять шаблоны проектирования (Стратегия, Фабрика, Состояние, Декоратор, Нулл-объект и другие)
- Использовать различные виды диспетчеризации для уменьшения и упрощения кода
- Управлять зависимостями, внедрять их с помощью DI-контейнера
Описание
Полиморфизм (подтипов) – главная отличительная черта современного ООП. Он позволяет значительно уменьшить количество условных конструкций и сделать код расширяемым.
Вместе с тем, полиморфизм – большая и глубокая тема, требующая серьезной подготовки. Здесь начинаются шаблоны проектирования, принципы SOLID и контейнеры зависимостей. Все это является неотъемлемой частью разработки на PHP у профессиональных разработчиков.
Уроки курса
-
3
Диспетчеризация по ключу (данные)
Научиться заменять условные конструкции на таблицу соответствия -
4
Диспетчеризация по ключу (функции)
Научиться делать диспетчеризацию используя функции -
5
Диспетчеризация по имени файла
Познакомиться с диспетчеризацией на основе файловой структуры -
7
Null Object Pattern
Рассмотреть практический пример использования полиморфизма в реальной жизни. -
8
Код, который убивает полиморфизм
Познакомиться с распространёнными ошибками, из-за которых теряется полиморфизм подтипов -
9
Инверсия зависимостей
Познакомиться с Принципом Инверсией Зависимостей и научиться соблюдать его используя Инъекцию Зависимостей -
10
Полиморфизм подтипов
Научиться использовать полиморфизм подтипов с интерфейсами -
11
Стратегия (Паттерн)
Научиться видеть места, где нужно использовать полиморфизм подтипов -
12
Динамическая диспетчеризация
Изучить механизм, благодаря которому работает полиморфизм -
13
Фабрика (Паттерн)
Познакомиться с распространённым способом создания объектов -
14
Шаблоны проектирования (Паттерны)
Познакомиться с понятием "шаблон проектирования" -
15
Объектная композиция
Научиться писать объектно-ориентированный код построенный на взаимодействии объектов -
16
Паттерн Состояние (State)
Рассмотреть несколько примеров систем и выявить общий паттерн. -
17
Управление зависимостями
Познакомиться с сервис-локатором и di-контейнером -
18
Дополнительные материалы
Статьи и видео, подобранные командой Хекслета. Помогут глубже погрузиться в тему курса
Формат обучения
Испытания
Это практические задания, которые мы советуем выполнить после завершения курса. Задания помогут вам получить дополнительный опыт в программировании и закрепить полученные навыки. Обычно мы рекомендуем выполнить 3-5 испытаний. Но если не получается, не отчаивайтесь. Просто вернитесь к ним позже
Впечатления

Я нашел отличительную черту hexlet от большинства других ресурсов в том, что здесь учат не тому - ЧТО такое полиморфизм, инкапсуляция и т.д, а тому - ЗАЧЕМ и КАК эти концепции применяются в реальном мире, оставляя за вами право давать этим терминам определения. Пройдя курс Полиморфизм за пару дней (не мог оторваться, как от Игры престолов), я понял об ООП больше, чем за несколько месяцев изучения и практики на других ресурсах. Браво!

Спасибо за этот курс - давно так башню не сносило:-) Очень полезные вещи узнала. Понравилась объемная практика! Обязательно - буду еще раз проходить.

Боже, паттерн Состояние самое прекрасное что я видел в своей жизни. Когда понимаешь суть работы таких "трафаретов", с которыми действительно не нужен ни один if
, то так и хочется закричать: "А что, так можно было??!!!1".
Пока что это для меня стоит на первом месте во всем PHP-курсе по полезности. Спасибо!

Задание огонь! Спустя 3 дня и после осознания, что "активация будильника != переход в режим bell ", увидела долгожданную надпись "status: finished → Тесты прошли!". Счастью нет придела.
P.S.: В этом упражнении TDD - это наше все!

Очень интересное задание. Спасибо за него. Еще бы парочку таких же, чтобы закрепить)) Сначала смотришь и ничего не понимаешь, что откуда брать. Читаешь как работают часы, читаешь первый тест, смотришь пример в уроке, реализуешь. Сначала еще так пишешь в основной класс через ифы по привычке, а потом думаешь надо же без ифов, смотришь как в уроке, пробуешь, получается и тут ("Блин а че так можно чтоли?"), а дальше по накатанной. Правда в итоге сравниваешь с учителем, а у него ваще все красиво. И с делением по модулю у учителя тоже классный оборот.
С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.
