PRO курс

JS: Программирование, управляемое данными

3030 сообщений в сообществе 3424 учащихся

В течение этого курса мы будем писать собственную карточную игру и знакомиться с такими важными концепциями программирования, как пользовательские типы, динамическая диспетчеризация по типу, позволяющая писать ёмкий, универсальный код, полиморфизм, передача сообщений между сущностями и, конечно, основы важнейшей темы — объектно-ориентированного программирования. Также мы перейдем к разработке через тесты (test driven development).

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

  • Делать свое ООП с типами и диспетчеризацией
  • Использовать инверсию зависимостей для изменения поведения кода без его переписывания
  • Создавать классы и использовать их в JavaScript
  • Применять полиморизм для уменьшения количества условных конструкций и дублирования
ООП Динамическая диспетчеризация Типы данных Объекты
Последнее обновление: 04 сентября 2020

Уроки курса

  • 1

    Введение

    Познакомиться с курсом и с проектом карточной игры, над которым мы будем работать в течение всего курса, по ходу знакомясь с важными концепциями программирования.
  • 2

    Игровой дизайн: карточный бой

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

    тесты

    упражнение

  • 3

    Инверсия

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

    тесты

    упражнение

  • 4

    Помеченные данные

    Разобрать недостатки текущей реализации нашей игры. Разобраться с понятием «помеченных данных», которое является одним из важнейших аспектов всего курса.

    тесты

    упражнение

  • 5

    Диспетчеризация по типу. Аддитивность.

    Понять, что такое аддитивные программы и как динамическая диспетчеризация поможет нам строить такие программы. Разобраться, что такое диспетчеризация в контексте программирования и типов.

    тесты

    упражнение

  • 6

    Объекты

    Познакомиться с объектами в контексте современного, общепринятого понятия объектно-ориентированного программирования. Понять, как динамическая диспетчеризация дала возможность работать с объектами в ООП.

    упражнение

  • 7

    Нативные объекты

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

    тесты

    упражнение

  • 8

    Классы

    Познакомиться с классом — структурой, которая позволяет создавать объекты. Рассмотреть механизм создания новых объектов с помощью 'new'.

    тесты

    упражнение

  • 9

    Полиморфизм

    Познакомиться с понятием полиморфизма в языках программирования. Разобрать три типа полиморфизма.

    тесты

    упражнение

Автор

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

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

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

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

Впечатления

Урок: Объекты

После пройденной профессии PHP этот курс очень хорошо зашел. Более глубокое понимание темы ООП, чем популярное "это там, где классы и объекты"))

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

Спасибо за такой прекрасный курс, было очень интересно!)

Урок: Инверсия

Программирование, Управляемое Данными - ПУД. Пуд соли. Пока шёл по курсу, много раз хотел поднять лапы вверх и подсмотреть решение. Блин! Дошёл! Не сорвался! Теперь оборачиваюсь, а ларчик то, не так уж сложно открывался. И пуд соли оказался меньше, чем казался. Не сдавайтесь! Удачи всем! Hexlet вы класс!

Потратил на задачку 1,5 часа. Никуда не заглядывал и не подглядывал, но на теорию день ушло. И когда очередной раз нажал проверить и мое решение прошло и даже похоже на решение учителя кончено радости не было предела)) Хочу дать совет, который не является истиной в последней инстанции) тем кто расстраивается и у кого опускаются руки, хотя про это много раз уже говорили но повторюсь: курс построен прекрасно все об этом говорят и все это знаю, но наш мозг так устроен, что когда мы переходим к новой теме и начинаем слушать лекцию и читать текст наш мозг сперва привыкает к новому тексту и визуализированной информации, а уже потом начинает обрабатывать смысл всего сказанного. Если взять эту конкретную тему, то я раз 15 пересмотрел видео и перечитал текст прежде чем мой мозг перестал отвлекаться на красивые кружочки и успокаивающий голос лектора(если бы он не был таким классным программистом, то был бы хорошим работником call-center))) и потом когда для мозга все это стало не в новинку, то он начинает переваривать смысл и у кого как, но у меня со скоростью асфальтоукладчика(зато сразу и без повторений) и затем задача и тема прекрасно усваивается и все спокойно решается, будьте терпеливы!

Курс JS: Программирование, управляемое данными
продолжительность
11 часов
награда
47 баллов