PRO курс

JS: Последовательности

5590 сообщений в сообществе 4258 учащихся

Продолжение изучения составных данных на более продвинутом уровне. Рассматриваем тип данных «список». В течение курса работаем над проектом «Генератор HTML», и на практике учимся понимать и использовать функции высшего порядка filter, map и reduce. Знакомимся с иерархическими структурами и уровневым проектированием.

Подготовительный курс

JS: Составные данные

Уроки курса

  • 1

    Введение

    Познакомиться с курсом и проектом «Генератор HTML», который будет постепенно разрабатываться в течение всего курса.
  • 2

    Представление последовательностей

    Вспомнить пары (pairs) и рассмотреть представление списков с помощью пар.

    тесты

    упражнение

  • 3

    Разметка

    Начать разрабатывать библиотеку для работы с HTML. Познакомиться с Markdown. Изучить общие принципы языков разметки на примере HTML.

    тесты

    упражнение

  • 4

    Отображение списков

    Рассмотреть функцию map и способ отображения списков.

    тесты

    упражнение

  • 5

    Фильтрация списков

    Изучить новую очень важную операцию — фильтрацию. Рассмотреть функцию filter, которая является одной из трех главных функций высшего порядка в функциональном программировании. Понять, как реализована функция filter внутри, и как она помогает писать хороший декларативный код на примере функции удаления тегов.

    тесты

    упражнение

  • 6

    Свертка

    Рассмотреть третий «столп» функционального программирования — функцию reduce. Понять, как она может помочь нам при создании обработчика HTML.

    тесты

    упражнение

  • 7

    Стандартные интерфейсы

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

    тесты

    упражнение

  • 8

    Иерархические структуры

    Перейти к построению иерархических структур с помощью пар.

    тесты

    упражнение

  • 9

    Уровневое проектирование

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

    тесты

Испытания

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

Автор

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

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

Впечатления

Жесть! Как решаю - сам не понимаю... Но вроде получается. Мозг после каждой задачи просто разорванный)))

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

Классные задания, чувствую, как мозг кипит и шевелится) Спасибо!)

Здравствуйте.

Хотел поблагодарить за ценнейшие уроки.

Полтора дня не мог сдвинуться с места при реализации функции map. По сути, впервые с начала изучения курса JS я встретился с задачей, которая просто выбила у меня почву из-под ног. Первые несколько часов (даже заглянув в тесты) я даже не мог понять чего от меня хотят. Мой мозг долгое время не мог осознать и принять возможность первым аргументом сделать анонимную функцию. В какой-то момент даже показалось, что эта стена мне одному не под силу и уже даже начал задумываться о том, чтобы написать сюда с просьбой о помощи. Но методом проб и ошибок, мозг понемногу начал включаться в работу и слово "Эврика!" звучало всё громче.

За реализацию mirror ещё не взялся. Возможно, там меня ожидают ещё больше открытий, ну, а пока хочу поблагодарить всех тех, кто создавал этот замечательный курс. Вы, ребята, очень крутые!

Ууух, пошла жара. Задачи - супер. Спасибо!

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