PRO курс

JS: Прототипы

1648 сообщений в сообществе 2035 учащихся

Описание

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

Пререквизиты

JS: Коллекции

Уроки курса

  • 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 Обернутая функция 82%
2 Вложенный доступ 89%

Автор

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

Сооснователь и технический директор образовательного проекта Hexlet. Соорганизатор конференции Nastachku.ru. В прошлом руководил филиалом undev.ru в Ульяновске, а до этого работал в Qik (Skype). Создает инженерную культуру в компаниях и несет в массы XP, DDD и DevOps. Евангелист ментального программирования.

Впечатления #

решил!!!!!!! :) тупил часа 3, уже собирался выключать комп, думаю попробую еще один вариант и о чудо!!! Конечно без предьидущего топика не разобрался бы сам как нужно использовать valueOf. Но немного самооценка все таки приподнялась.

Блин, эту хрень с моим мозгом хекслет проделывает снова и снова, и каждый раз это как в первый раз - сначала нетерпение, раздражение, затем даже злость, после этого успокаиваешься, читаешь все вопросы и ответы, гуглишь что-нибудь, и в итоге решаешь задачу.

На это уходит день-два или больше.

Вот тут ты уже спокоен как удав, удовлетворен, чувствуешь себя "like a boss", так сказать. Ты уверен в себе, своих силах, да я практически познал дзен!

Но неизбежно одна из следующих задачек вернет тебя на место, откуда все это началось...

Не выдержал и посмотрел решение. Интуитивно понимал, что нужно использовать операторы rest и spread при вызове buildNode и вызове конструкторов. И не додумался до такой простой вещи, как значения аргументов по-умолчанию :/

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

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

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

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

продолжительность
22 часа
награда
66 баллов
Получить доступ к курсу