курс

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

5196 студентов 5973 сообщения
Последнее обновление: 28 февраля 2024
Курс JS: Последовательности
3 900 ₽ в месяц
за все курсы Хекслета
Зарегистрироваться
  • Тренажер с практикой
  • Бессрочный доступ к теории
  • Асинхронный формат
    обучения

Включено в курс

9 уроков (видео и/или текст)
17 упражнений в тренажере
45 проверочных тестов
Помощь в «Обсуждениях»
Доступ к остальным курсам платформы

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

  • Строить сложные структуры данных на базе более простых
  • Проектировать функции так чтобы их можно было легко соединять друг с другом
  • Обрабатывать коллекции представленные списками с помощью функций высшего порядка (map/filter/reduce)
  • Разделять код на уровни, выстраивая правильное взаимодействие между слоями

Описание

На этом курсе вы продолжите изучать составные данные на более продвинутом уровне и рассмотрите тип данных «список». Вы узнаете больше о функциях высшего порядка filter, map и reduce и иерархических структурах. В итоге вы научитесь строить сложные структуры данных на базе более простых и проектировать функции так, чтобы их можно было легко соединять друг с другом. Составные данные пригодятся, если вы решите работать над проектами, которые требуют обработку сложных структур данных. Знания из этого курса помогают программистам обрабатывать коллекции, представленные списками с помощью функций высшего порядка.

Чтобы учиться было проще, стоит заранее пройти курс JS: Основы.

Программа курса

Продолжительность 10 часов
  • 1

    Введение

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

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

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

    тесты

    упражнение

  • 3

    Разметка

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

    тесты

    упражнение

  • 4

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

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

    тесты

    упражнение

  • 5

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

    Изучаем новую очень важную операцию — фильтрацию

    тесты

    упражнение

  • 6

    Свертка

    Рассматриваем третий столп функционального программирования — функцию reduce

    тесты

    упражнение

  • 7

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

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

    тесты

    упражнение

  • 8

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

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

    тесты

    упражнение

  • 9

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

    Знакомимся с уровневым проектированием на примере нашей реализации библиотеки для работы с HTML

    тесты

  • 10

    Дополнительные материалы

    Статьи и видео, подобранные командой Хекслета. Помогут глубже погрузиться в тему курса

Формат обучения

Испытания

Это практические задания, которые мы советуем выполнить после завершения курса. Задания помогут вам получить дополнительный опыт в программировании и закрепить полученные навыки. Обычно мы рекомендуем выполнить 3-5 испытаний. Но если не получается, не отчаивайтесь. Просто вернитесь к ним позже

#
Задание
% завершений
3
93%

Отзывы

Аватар пользователя Евгений Мидонов
Евгений Мидонов 04 мая 2022

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

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

Совет тем, кто только приступает: не отступайте при первых сложностях, позорьтесь до конца )))

Хотелось бы, конечно, услышать мнение преподавателей, но по моим личным ощущениям задание сложное (и это хорошо!). Тут сразу много проблем : и то, что нужно работать с библиотекой пар, и то, что нужно исполнять задачи рекурсивно, и то, что даже рекурсия иногда может работать не так, как ты привык, чтобы она работала (это опять про concat, если что). Но, действительно, выполнив даже это первое задание начинаешь немного иначе видеть код и то как с ним работать, получаешь в частности, возможность проработать рекурсивные вызовы, чего в предыдущих курса было откровенно мало. Спасибо команде Хекслета за это ;)


Аватар пользователя Ильмира Давлетшина
Ильмира Давлетшина 16 августа 2019

АААААА просто жесть!) Несколько дней сидела по несколько часов. Ночами во снах видела окошко Хекслета и не проходящие тесты. Километры обсуждений, стопки исписанных листов. Хотелось все бросить и посмотреть решение учителя. В конечном итоге, третья функция решена. Последней каплей в моем понимании стало написание всех свойств функции, которыми она должна обладать (какой параметр должен браться, куда записываться, как взять поэлементно, расписать рекурсивно некий образ вызова всех элементов и т.д.). Когда увидела три галочки в тестах, даже как-то не отлегло, какой-то осадок остался в душе)) Будто не я сама это решила, а кто-то за меня написал. Но так оно и есть) Коллективно из обсуждений родилось решение. СПАСИБО ВСЕМ!


Аватар пользователя Roman Serikov
Roman Serikov 25 марта 2019

Автор задания просто красавчик. Так закрутил все. Респект и уважуха ))


Аватар пользователя Тимофей Ч.
Тимофей Ч. 14 марта 2019

Удивился, как быстро удалось написать emptyTagsCount. Буквально одной левой передал тип элемента в функцию для reduce. Каррирование и "функции, возвращающие функции" даром не прошли. Тот момент, когда уже научился ездить на велосипеде, но сам еще не можешь в это поверить :)


Аватар пользователя Евгений Квач
Евгений Квач 24 января 2019

Да,надо отметить,что мозги горят. решил обе функции сам,но первую с помощью внутренней итеративной функции. поглядел решение учителя и переписал без подсматриваний на аналогичное. т.е. понимание есть!<br> что касается emptyTagsCount,то пришлось подключить filter из прошлого урока,отфильтровать сначала все элементы типа,потом из них итеративно выбрать элементы с нулевым содежанием value. а все потому,что не смог правильно описать условие,как у учителя. в общем буду сейчас дальше биться,чтобы дописать до его варианта. только так понимание и приходит! спасибо за уроки,они отличные!

Рекомендуемые программы

профессия
Верстка на HTML5 и CSS3, Программирование на JavaScript в браузере, разработка клиентских приложений используя React
10 месяцев
с нуля
Старт 26 декабря
профессия
Программирование на Python, Разработка веб-приложений и сервисов используя Django, проектирование и реализация REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
Тестирование веб-приложений, чек-листы и тест-кейсы, этапы тестирования, DevTools, Postman, SQL, Git, HTTP/HTTPS, API
4 месяца
с нуля
Старт 26 декабря
профессия
Программирование на Java, Разработка веб-приложений и микросервисов используя Spring Boot, проектирование REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
новый
Google таблицы, SQL, Python, Superset, Tableau, Pandas, визуализация данных, Anaconda, Jupyter Notebook, A/B-тесты, ROI
9 месяцев
с нуля
Старт 26 декабря
профессия
Программирование на PHP, Разработка веб-приложений и сервисов используя Laravel, проектирование и реализация REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
Программирование на Ruby, Разработка веб-приложений и сервисов используя Rails, проектирование и реализация REST API
5 месяцев
c опытом
Старт 26 декабря
профессия
Программирование на JavaScript в браузере и на сервере (Node.js), разработка бекендов на Fastify и фронтенда на React
16 месяцев
с нуля
Старт 26 декабря
профессия
Программирование на JavaScript, разработка веб-приложений, bff и сервисов используя Fastify, проектирование REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
новый
Git, JavaScript, Playwright, бэкенд-тесты, юнит-тесты, API-тесты, UI-тесты, Github Actions, HTTP/HTTPS, API, Docker, SQL
8 месяцев
c опытом
Старт 26 декабря