Включено в курс
Чему вы научитесь
- Понимать разницу между разными видами полиморфизма и решаемые ими задачи
- Распознавать и применять шаблоны проектирования (Стратегия, Фабрика, Состояние, Декоратор, Нулл-объект и другие)
- Использовать различные виды диспетчеризации для уменьшения и упрощения кода
Описание
На этом курсе вы изучите полиморфизм подтипов, что является главным отличием современного ООП. Вы узнаете, как значительно уменьшить количество условных конструкций и делать код расширяемым. В итоге вы познакомитесь с основными шаблонами проектирования и принципами SOLID.
Этот курс подойдет для тех, кто хочет стать профессиональным разработчиком. Чтобы учиться было проще, стоит заранее изучить Основы JavaScript.
Программа курса
-
3
Диспетчеризация по ключу (данные)
Учимся заменять условные конструкции на таблицу соответствия -
4
Диспетчеризация по ключу (функции)
Учимся делать диспетчеризацию, используя функции -
5
Диспетчеризация по имени файла
Знакомимся с диспетчеризацией на основе файловой структуры -
7
Null Object Pattern
Рассматриваем практический пример использования полиморфизма в реальной жизни -
8
Код, который убивает полиморфизм
Знакомимся с распространенными ошибками, из-за которых теряется полиморфизм подтипов -
9
Инверсия зависимостей
Знакомимся с принципом инверсией зависимостей и учимся соблюдать его, используя инъекцию зависимостей -
10
Паттерн Стратегия
Учимся видеть места, где нужно использовать полиморфизм подтипов -
13
Объектная композиция
Учимся писать объектно-ориентированный код, построенный на взаимодействии объектов -
14
Паттерн Состояние (State)
Рассматриваем несколько примеров систем и выявляем общий паттерн -
16
Дополнительные материалы
Статьи и видео, подобранные командой Хекслета. Помогут глубже погрузиться в тему курса
Формат обучения
Испытания
Это практические задания, которые мы советуем выполнить после завершения курса. Задания помогут вам получить дополнительный опыт в программировании и закрепить полученные навыки. Обычно мы рекомендуем выполнить 3-5 испытаний. Но если не получается, не отчаивайтесь. Просто вернитесь к ним позже
Отзывы
Ребята из Хекслета, спасибо за этот курс. Наверное, один из лучших в Профессии. Я прямо прочувствовал, как левелапнулся. На первом уроке (Параметрический полиморфизм) меня охватила паника, которая продлилась больше недели, но все остальные уроки удалось пройти за один день (не без косяков, конечно, но все основные принципы понял и освоил). Удивительно, но даже тема паттернов зашла без особенных проблем. Конечно, это всё ещё азы и детский сад, но всё равно приятно ощущать себя менее дубоголовым, чем ранее :)
Человек, который пишет код, который убивает полиморфизм — я =]
Новый курс офигителен. Я реально его люблю. Мозг по-прежнему кипит, вижу элегантные решения учителя, до которых еще сам не всегда дохожу и ругаю себя, что не смог написать так же. Но хотя бы понимаю уже почему они элегантны. Когда только начинаешь изучать, то есть какие-то пресловутые пунктики, наподобие "короткий код" или какая-то подсмотренная и заученная техника. И видя решение учителя, даешься диву почему все хвалят этот код, когда можно было вот так — быстрее и короче... А сейчас вот прям понимаю "почему"! =)
Вспоминаю, как я мучился с прошлыми курсами... кажется полиморфизм разбирался в курсе по Прототипам. И вроде бы в старых заданиях было более подробное описание (собственно благодаря которому что-то в итоге наколдовывалось), сейчас по-настоящему понимаю что делаю. А без подробного описания вся нужная инфа легко читается из тестов. По факту тесты — это как ТЗ (техническое задание). Надеюсь, дальше будут курсы и больше практики именно по составлению тестов. Ибо правильно написанное ТЗ — это ж 80% работы в любой из профессий, будь то граф дизайн, копирайтинг или программирование =)
Команде и Кириллу еще раз огромное спасибо, что стараетесь объяснять сложное просто. Раньше казалось, что курс "Введение в программирование" простой. А теперь кажется, что новые курсы намного проще все объясняют. Хотя хз, может просто на самом деле опыт пришел =}
Здравствуйте! Спасибо за материал урока и в целом тему "диспетчеризация по ключам", очень интересно и применимо.
Очень элегантно используется деструктуризация в конце, когда подчищается итоговый конфиг)
Прикольное задание, спасибо!
Офигенный урок! Когда прочитал теорию в первый раз, то ничего не понял. Во второй раз стало понятнее. Но когда переписал код в свой редактор, да еще и имплемениторвал дополнительно методы powerOff и notify у MobileScreen все встало на свои места.
В этом уроке очень мощно проникаешься сутью полиморфизма подтипов.