Мастер-класс по архитектуре и паттернам [learn.javascript.ru] [Тёма Сенюков]

Admin

Администратор
Команда форума
22 Фев 2018
50,488
17,598
113
Складчина: Мастер-класс по архитектуре и паттернам [learn.javascript.ru] [Тёма Сенюков]

Цели интенсива:

  • Изучить основные понятия архитектуры и проектирования.
  • Рассмотреть способы оценки и улучшения качества кода.
  • Разобрать дизайн-принципы SOLID, их применение в реальных приложениях.
  • Разобрать шаблоны проектирования, наиболее часто встречающимися на фронтенде.
  • Научиться видеть шаблоны в существующем коде и самостоятельно их применять.
Предварительные требования:
Опыт JavaScript от 1 года и понимание синтаксиса классов (или пройденный курс JavaScript для программистов или новичков).
Программа

Часть 1. Основные задачи проектирования:

  • Что значит, что система спроектирована "хорошо"
  • Какие принципы критичны, а какими можно пренебречь
  • Как писать новый код так, чтобы не ломать старый
  • Что делать, если в наследство достался плохо спроектированный проект
  • Применимость и неприменимость тех или иных подходов на практике
Базовые понятия архитектуры:
  • Архитектурные границы
  • Внешние и внутренние интерфейсы
  • Отношения и зависимости
  • Сцепленность и связность
  • Закон Деметры
  • Абстракции
  • SOLID и GRASP
Подробно разберём принципы SOLID — зачем нужен каждый из них, какую задачу решает. Рассмотрим примеры кода и особенности фронтенда.
Часть 2. Проанализируем наиболее частые для фронтенда шаблоны проектирования:

Поведенческие:

  • Стратегия (Strategy)
  • Итератор (Iterator)
  • Шаблонный метод (Template Method)
  • Наблюдатель (Observer)
  • Посредник (Mediator/Controller)
  • Команда (Command)
Порождающие:
  • Фабрика (Factory)
  • Фабричный метод (Factory method)
  • Одиночка (Singleton)
  • Прототип (Prototype)
Структурные:
  • Декоратор (Decorator)
  • Примесь (Mixin)
  • Текучий интерфейс (Fluent API)
  • Конвейер (Pipeline)
  • Фасад (Facade)
  • Адаптер (Adapter)
  • Заместитель (Proxy)
  • Приспособленец (Flyweight)
...И ряд других. Рассмотрим применение каждого шаблона на практике. Посмотрим и обсудим конкретные примеры кода.
В процессе вспомним некоторые смежные понятия, такие как иммутабельность, объектно-ориентированный подход, функции первого класса, реактивность и асинхронность.
Завершим интенсив обзором направлений дальнейшего развития и списком рекомендуемых источников.

Стоимость 7500р (≈73$)