Тестирование JavaScript: unit-тесты, TDD и моки
Пишите тесты, которые ловят настоящие ошибки, — и код, которому можно доверять
Курс по подписке
От «пишу, и оно работает» к «понимаю, почему работает»: современный JavaScript изнутри
Получить доступ к курсу
Курс по подписке · Обучение в своём темпе · Без звонков и консультаций
О курсе
Курс для тех, кто уже знает основы JavaScript и хочет писать код так, как пишут профессиональные разработчики. Вы разберётесь, как функции запоминают своё окружение, как на самом деле устроены объекты и классы, почему this иногда «теряется», как делить программу на модули, строить ленивые последовательности генераторами и, главное, как работает асинхронный JavaScript: цикл событий, микро- и макрозадачи, Promise, async/await, параллельные запросы, повторы, таймауты и ограничение конкурентности.
Аудитория
Знаете основы JavaScript
Разберетесь, как работают замыкания, прототипы, this и классы, — и будете понимать, почему ваш код работает.
Пишете асинхронный код
Научитесь предсказывать порядок выполнения в цикле событий и писать надежные async-процессы с повторами и таймаутами.
Прошли курс основ JavaScript
Продолжите с функций высшего порядка, модулей ES и CommonJS, итераторов и генераторов.
Курс опирается на знания, отмеченные ниже как обязательные.
Нужно знать
Курс «Основы программирования на JavaScript» или равноценные знания — переменные, условия, циклы, функции, массивы, объекты, строки, методы массивов и try/catch.
Если этих знаний ещё нет — пройдите курсы по порядку:
Результат
использовать функции высшего порядка, замыкания и каррированные фабрики для переиспользуемого кода
уверенно работать с деструктуризацией, spread/rest, ?. и ??, копированием объектов
агрегировать данные с помощью reduce, Object.groupBy, Map и Set
организовывать код в модули ES и CommonJS
понимать прототипы, this, классы, наследование и приватные поля
строить иерархии собственных ошибок и цепочки причин
писать итераторы и генераторы, в том числе ленивые и бесконечные
предсказывать порядок выполнения асинхронного кода и писать надёжные async-процессы
Формат
35 практических заданий с автоматической проверкой на скрытых тестах и 12 тестов на понимание. Вы напишете конвейер преобразований текста, собственные map/filter/reduce, мемоизацию с LRU-кешем, нормализацию ответа API, глубокое слияние настроек, аналитику продаж и журналов, настоящие модули ES и CommonJS, банковский счёт с приватными полями, шину событий, иерархию собственных ошибок, ленивые генераторы, симулятор цикла событий, повторы с экспоненциальной задержкой, таймауты и пул с ограничением конкурентности. Три задания — отладка чужого кода. Финал — два проекта: конвейер обработки заказов и асинхронный планировщик задач с зависимостями.
21 урок с примерами
35+ заданий с автоматической проверкой
12 тестов для самопроверки
Онлайн на my.prog.academy, без установки программ
Платформа Prog Academy
Курс проходит на платформе Prog Academy — вместе с ним вы получаете AI-помощника и инструменты для поиска первой работы в IT.
Обучение
Вы учитесь, выполняя задания: каждую новую тему сразу применяете на практике, а не только читаете теорию. Задания проверяются автоматически, прямо в браузере.
Вы не остаётесь один на один с материалом
Что-то непонятно или застряли на задании — спросите прямо в уроке. Помощник объяснит тему проще, ответит на вопросы, поможет разобраться в условии задания и подскажет следующий шаг, найдёт нужное в материалах курса. Он знает, какой урок вы проходите, и помнит разговор.
Карьера
Успешно прошли курс — получаете сертификат и в один клик добавляете его в профиль LinkedIn.
Резюме на английском, украинском или русском — прямо на платформе. Ваши курсы и сертификаты добавляются в него в пару кликов.
Junior-вакансии и стажировки в одном месте — с подборкой под курсы, которые вы проходите.
Вся платформа — в одном аккаунте
Программа
12 модулей, 35+ практических заданий с автоматической проверкой и 12 тестов. Откройте модуль, чтобы увидеть все темы.
Функции первого класса, колбэки, функции высшего порядка, фабрики функций, rest и spread, чистые функции.
Лексическое окружение, замыкания, приватное состояние, фабрики, once, memoize и типичная ловушка с var в цикле.
Деструктуризация объектов и массивов, spread/rest для данных, поверхностное и глубокое копирование, операторы ?. и ??.
reduce для сложных агрегаций, Object.groupBy, flatMap, Object.fromEntries, Map и Set.
Зачем нужны модули, ES-модули (import/export), CommonJS (require/module.exports), область видимости модуля и кеширование.
Цепочка прототипов, Object.create, собственные и унаследованные свойства, функции-конструкторы, правила this, call/apply/bind.
Синтаксис class, геттеры и сеттеры, статические члены, приватные поля, extends и super, полиморфизм, композиция.
Собственные классы ошибок, иерархии, instanceof в catch, повторное выбрасывание, finally и цепочки причин (cause).
Протокол итерации, Symbol.iterator, собственные итерируемые объекты, генераторы, ленивые и бесконечные последовательности.
Однопоточность, стек вызовов, цикл событий, микро- и макрозадачи, состояния Promise, then/catch/finally и цепочки.
async/await, try/catch с await, последовательное и параллельное выполнение, Promise.all/allSettled/race/any, таймауты, повторы и ограничение конкурентности.
Как объединить классы, ошибки, коллекции и асинхронность в надёжный процесс; два итоговых проекта.
Стек
Код пишете и запускаете в браузере на платформе — устанавливать ничего не нужно.
Доступ
Короткая форма на этой странице — без звонков и консультаций.
После формы перейдите в Telegram-бот Prog Academy — он пришлёт дальнейшие инструкции по доступу.
Уроки, практика и тесты — на my.prog.academy, в удобном для вас темпе.
Контакт
Оставьте контакты — пришлём детали доступа к курсу «Продвинутый JavaScript: функции, объекты и асинхронность». Без звонков и консультаций.
Пишите тесты, которые ловят настоящие ошибки, — и код, которому можно доверять
Путь запроса от URL до готовой страницы: DNS, TCP, TLS, HTTP, кеш, cookies, API и защита веб-приложений.
Пишите JavaScript, в котором ошибки находит компилятор, а не пользователь
Оставьте вопрос — подскажем, подходит ли вам курс и с чего лучше начать.