PRO курс

JS: Прототипы

2114 сообщений в сообществе 2766 учащихся

Этот курс посвящён реализации объектно-ориентированного программирования в JavaScript — прототипам. Классы и их отсутствие, классы как функции и функции как объекты. В течение курса мы будем работать над проектом HTML Builder, библиотекой, которая конвертирует специально отформатированный текст в готовый код HTML.

Чему вы научитесь:

  • Правильно использовать прототипы для создания своих типов данных
  • Реализовывать прототипное наследование
  • Применять полиморфизм для ухода от условных конструкций
полиморфизм наследование позднее связывание
Последнее обновление: 02 сентября 2020

Уроки курса

  • 1

    Введение

    Познакомиться с курсом и особенностями реализации концепций объектно-ориентированного программирования в языке JavaScript. Узнать о проекте HTML Builder, над которым мы будем работать на протяжении курса.
  • 2

    Проект HTML Builder

    Разобрать проект, над которым мы будем работать на протяжении курса. HTML Builder будет генерировать готовый HTML-код на основе придуманного нами DSL.

    тесты

    упражнение

  • 3

    Абстрактное синтаксическое дерево

    Познакомиться с AST — абстрактным синтаксическим деревом, которое участвует практически в любой программе, занимающейся парсингом. Понять, как использовать идею AST для создания HTML Builder'а.

    тесты

    упражнение

  • 4

    Полиморфизм подтипов

    Рассмотреть полиморфизм подтипов на примере практического задания из прошлого урока.

    упражнение

  • 5

    Иерархия типов

    Рассмотреть иерархию типов, базовые идеи и терминологию.

    тесты

  • 6

    Наследование

    Разобрать то, как наследование выглядит в языке JavaScript.

    тесты

    упражнение

  • 7

    Функции как объекты

    Познакомиться с особенностью языка JavaScript: функции в нём являются объектами.

    тесты

    упражнение

  • 8

    Позднее связывание

    Рассмотреть концепцию позднего связывания, которая, наряду с передачей сообщений, является одной из двух главных идей объектно-ориентированного программирования в своей начальной формулировке.

    тесты

    упражнение

  • 9

    Прототипы

    Рассмотреть механизм наследования на прототипах, который используется в языке JavaScript.

    тесты

    упражнение

  • 10

    Цепочки прототипов

    Изучить механизм построения цепочки прототипов в JavaScript.

    тесты

    упражнение

Испытания

Это практические задания, которые мы советуем выполнить после завершения курса. Задания помогут вам получить дополнительный опыт в программировании и закрепить полученные навыки.

# Задание % завершений
1 Обернутая функция 84%
2 Вложенный доступ 91%

Автор

Аватар пользователя Kirill Mokevnin

Кирилл Мокевнин

Сооснователь и CEO образовательного проекта Хекслет. Программирую с 2007 года. За это время прошёл путь от разработчика до технического директора и управляющего отдельным подразделением (филиалом). Управлял командами, в которых больше 50 разработчиков.

  • Программирую на языках: Elixir, Clojure, JavaScript, PHP, Ruby.
  • Соорганизатор конференции Nastachku.ru.
  • Вимер.
  • Топлю за DevOps и автоматизированные тесты.

Впечатления

Когда я решил ввязаться во все это дело, для меня программирование представляло собой написание макросов на VBA для сугубо прикладных задач: что-то посчитать, что-то подгрузить-выгрузить, создать форму и т.д. В общем, ЖС я тоже представлял себе примерно так. И если бы я полгода назад напоролся вот на такой урок, когда из целого предложения я отчетливо и на 100% понял только слова "положить" и "башня" - я бы подумал, да ну это все нахрен. Хорошо, что уже поздно сворачивать и идти в другую сторону.

Упражнение - супер! Спасибо!

Ура, я решил! По началу казалось, что это нереально сделать. Несколько дней медитировал на решение предыдущей задачи, и в итоге решение пришло. Главное - не сдаваться и идти до конца)

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

благородный муж стойко переносит беды

буду пытаться продолжить этот курс.

В общем курс получился действительно не из легких, для закрепления просматривал все лекции по 2-3 раза, там где было интересно узнать глубже искал доп. инфу на просторах сети :)

а вообще все понравилось, практики к занятиям вообще отличные, заставляли временами прям подымить мозгами (:

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

Курс JS: Прототипы
продолжительность
12 часов
награда
56 баллов