JavaScript-инженер
"Продвинутый" курс для тех, кто владеет конструкциями языка и желает улучшить качество своего кода

7 сентября 2019, 2 х $250, 30 мест
Уровень разработчика в моей картине мира определяют четыре вещи:

  • навыки реального применения архитектурных подходов, осознание их преимуществ и недостатков;
  • знание инженерных практик и понимание границ их применимости
  • владение конкретными инструментами для реализации подходов и практик
  • уровень развития "синергетических навыков" (soft-skills, документирование кода и все, что позволяет команде работать продуктивнее)

Этот курс - про инженерные практики которые мы считаем самыми важными и полезными.
Темы
Каждая тема ответит на вопросы по конкретной инженерной практике:
  • когда стоит применять;
  • когда не стоит применять;
  • какие инструменты реализуют эту практику
  • как интегрировать практику в жизнь команды
Типизация
Когда нужны типы? Как это типизировать? Когда типы не нужны? Как строить DSL на типах. Мы не будем рассказывать "смотрите, это TypeScript" так здесь пишутся типы", вместо этого сконцентрируемся на основах теории
Контракты
Зачем нужно контрактное программирование, как выражать контракты, как с ними работать и как управлять контрактами в системе.
Как контракты снижают стоимость владения кодом
Реактивность
Что мы вкладываем в понятие реактивности? Как строят реактивность на get/set и на Proxy? Когда реактивность полезна, а когда ухудшает управляемость, добавляя слишком много магии?
Потоки
Кому нужны "промисы на стероидах" и когда их использование оправдано. Всегда ли стоит брать RxJS как лидера среди "observables" или смотреть на другие примитивы?
Функции для землян
Писать код в чисто функциональном стиле - огромные риски. Как грамотное применение базовых монад и pattern-matching позволяет ускорить разработку?
Конечные автоматы в коде
Как упрощать код с помощью конечных автоматов? Какие решения не стоит описывать с помощью конечных автоматов, а какие - крайне полезно?
Метрики кода
Что, как и зачем мерять в коде? Как правильно проводить замеры, начиная от бизнес-метрик и заканчивая производительностью решений. Как анализировать собранную информацию?
Кодогенерация
Как код, который пишет код упрощает код? Как провести границы между кодогенерацией и рантаймом?
О курсе
10 недель, из которых 2 недели (4 и 8) зарезервированы для выполнения домашних заданий.

Каждая неделя состоит из:
  • видео-контента (как записанного эксклюзивно для курса, так и внешнего)
  • материалов для дополнительного погружения в тему, если Вы с ней не знакомы
  • лекции-обсуждения проблем, вопросов и пожеланий
  • 2 заданий (обычно одно из них отвечает на вопрос "как это работает?" а второе - на вопрос "как это применять?")
  • асинхронного code-review решений

Для кого?

Для практикующих frontend или backend-программистов. Рекомендуется базовой знакомство хотя бы с одним framework'ом для разработки для понимания применимости инженерных подходов в вашей архитектуре
Место курса в обучающем плане
Базовый курс по архитектуре (frontend/backend)
Понимание основных архитектурных решений выбранной платформы
JAVASCRIPT-ИНЖЕНЕР
Умение усиливать существующие архитектурные решения конкретными инженерными практиками
Продвинутый курс по архитектуре
(frontend/backend)
Обзор альтернативных архитектур, их особенностей и слабых мест
Заинтересованы?
Оставьте заявку и будьте первым узнайте о начале набора
Нажимая на кнопку, вы даете согласие на обработку персональных данных и соглашаетесь c политикой конфиденциальности