PRO курс

JS: Прототипы

1794 сообщения в сообществе 2172 учащихся

Этот курс посвящён реализации объектно-ориентированного программирования в 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 Обернутая функция 83%
2 Вложенный доступ 90%

Автор

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

Сооснователь и технический директор образовательного проекта Hexlet. Программирует с 2007 года. За это время прошел путь от разработчика до технического директора и управляющего отдельным подразделением (филиалом). Управлял командами, в которых больше 50 разработчиков. Программирует на языках: elixir, clojure, javascript, php, ruby. Со-организатор конференции nastachku.ru. Вимер. Топит за DevOps и автоматизированные тесты.

Впечатления

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

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

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

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

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

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

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

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

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

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

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