Зимняя школа
по
TypeScript
«Безопасный» типизированный production код, насколько это возможно с TypeScript
Почему НЕ ПРОСТО МАСТЕР-КЛАСС?
Как показали тестовые группы, в ситуации с TypeScript часто приходится не учить, а переучивать с одной из двух крайностей — того, что я (в шутку) называю «ТупоСкрипт» — бездумном покрытии типами каждого чиха, или наоборот — восприятием TypeScript как «побочного» сахарка для приятного автодополнения.
Формат «школы» предполагает не только «просто рассказы», но и прежде всего дискуссии и совместный поиск «истины», которая индивидуальна для каждого проекта
Зимняя школа по TypeScript
Преподаватель— Илья Климов
Формат обучения
Материалы для изучения

Зачем повторять то, что уже есть в интернете? Перед каждым созвоном (кроме первого) мы будем готовить материалы, чтобы предметно обсуждать нюансы и сложности, а не пересказывать вам документацию

Видеозвонки
Что может быть лучше Zoom-звонка, чтобы объяснить преподавателю, что он не прав. Только 6 таких звонков каждую субботу в 11:00 по Украине!

Цель подобных live - обсудить все нюансы применения технологии
Чат
Традиционно, с окончанием школы, курса или мастер-класса дискуссии не заканчиваются. Наша задача - создать место. которое объединяет людей для предметных вопросов
Как это работает
Контент
Каждую субботу после лекции вы получаете ссылки на материалы (handbook, документация, issues, статьи и т.п.)
В будние дни
Вы работаете с материалом, задаете вопросы в чате и/или откладываете вопросы на лекцию
В субботу, 11:00 по Украине
Большая Zoom-конференция где мы отвечаем на все ваши вопросы и дискутируем

Ожидаемое число суббот: 6, однако резервируйте 8 недель
Чему вы научитесь?

Осознавать зачем в коде нужны типы, сколько их надо и откуда их брать
Везде явно писать типы? Полагаться целиком на вывод? Когда нужно использовать runtime-типизацию? Зачем нужны брендированные типы? Ответы на все эти вопросы часто зависят от проекта, но мы попробуем предложить некоторые универсальные рецепты

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

Уметь находить компромисс между мощностью TS и простотой понимания кода
Современный TypeScript предлагает мощные (и, иногда, однобоко ограниченные) инструменты для описания типов - обобщенные типы (generics), условные типы, типы-отображения (mapped types), infer и многое-многое другое. Всё это может как и облегчить вашу жизнь, так и превратить работу с типами в бесполезную трату времени.

Чего не стоит ждать?
Пересказ документации в видео-формате
При всех минусах, у TypeScript достаточно хорошая документация, с которой точно стоит ознакомиться. Новая версия Handbook так же содержит много ценной информации. Мы не хотим пересказывать то, что уже существует, а наоборот - сфокусироваться на более высокоуровневых темах. Если вы "лучше воспринимаете информацию в видео-формате" - возможно этот формат не для вас
Исчерпывающий разбор всех возможностей TS
TypeScript - это не только типы, но еще и инфраструктура для сборки проектов. Мы осознанно концентрируемся только на аспекте типизации, как требующим наибольшего "понимания" а не знания. Точно так же, мы не хотим демонстрировать работу, к примеру, каждого Utility type - большинство из них очевидны
Экстремальное применение вывода типов
Мы не будем парсить JSON "на типах". Мы не будем заниматься переворотом строк - другими словами, всем тем, что можно сделать на TypeScript, но что имеет ограниченную ценность в реальной разработке. Наша задача в сжатые сроки дать то, что имеет максимальную ценность при практической разработке
Секретные знания для React/Vue/Angular/etc.
Структура школы специально построена как максимально не привязанная к конкретному фреймворку. Наша задача дать знания, которые применимы независимо от того, фронтендер вы или backend-разработчик, пишете на чистом JS, React или Vue
Академическая чистота определений
Как человек с учёной степенью, мне сложно не поддаться искушению и не устроить каноническое академическое введение в систему типов. Тем не менее, этого не будет. Вместо этого будут "практические" (часто неправильные и неполные с математической точки зрения) определения что такое "тип", какие бывают "вариантности" и т.п.
О чем мы будем говорить на звонках
  1. Типы
Разберем, что есть тип, акцентируем внимание на вариантностях, opaque типах, брендировании, дженериках, выводе типов и идеальном мире типизации
2. Нюансы TypeScript
Поговорим о том, как сова идеального мира типов натягивается на глобус JavaScript: о неизбежных компромиссах типизации, осознанном выборе разработчиков TS и почему об этом стоит задумываться
3. Гонка за надежностью
Обсудим место TypeScript в обеспечении надёжности кода, и что для этого нужно предпринять. Как не дать коллегам испортить ваш код и как испортить вашим кодом жизнь коллегам.
4. Создание новых типов
Проанализируем возможности TypeScript по созданию производных типов и где их следует применять.
5. DDD
Как связаны TypeScript и DDD? Как и зачем руководствоваться принципами DDD при создании типов, даже если DDD в проекте не используется. Как TypeScript влияет на архитектуру
6. Инструменты и TS
Поговорим об инструментах, которые могут помочь сделать наш код на TypeScript ещё более надёжным. Обсудим кодогенерацию и прочие ужасы
Старт занятий - 5 февраля 2022 года
Стоимость обучения $100 до 29 января
Полная стоимость $150
Присоединиться и получить доступ к материалам школы можно только до 5 марта
По окончанию школы, вам будут предоставлены обучающие материалы в видео-формате (16 видео), резюмирующие ключевые аспекты рассмотренных тем. В дальнейшем именно эти видеоматериалы и будут доступны к покупке в формате «мастер-класса»
Click to order
Оплата участия
Total: 
Имя
E-mail
Промокод
Вопрос:
Условия возврата денег?
Ответ:
Безусловный возврат 100% денег до 28 февраля 2022 года
Вопрос:
Какой уровень необходим для участия?
Ответ:
Если вы владеете JavaScript на уровне понимания асинхронности - этого будет достаточно. Тем не менее, некоторые "боли" будут понятны только тем, кто имеет опыт написания (а ещё лучше - поддержки) сколько-нибудь больших проектов
Вопрос:
Может ли компания оплатить участие?
Ответ:
Стоимость участия при оплате от имени компании - $150 в гривневом эквиваленте. Мы можем выставить необходимые документы от имени ФОП в Украине
Вопрос:
Я хочу уточнить еще....
Ответ:
Конечно! Проще всего меня найти в Telegram или по электронной почте illya@javascript.ninja