Что вам даст этот курс:
- Освоение Rust для фронтенда
- Научитесь создавать программы и библиотеки на Rust и применять язык вместе с WebAssembly для реальных Frontend-задач.
- Глубокое понимание языка и его философии
- Разберётесь в ключевых примитивах Rust, концепциях владения и заимствования, а также поймёте, как они влияют на качество кода.
- Новый уровень работы с производительностью
- Узнаете, как замена критических к производительности модулей JS на Rust/Wasm ускоряет выполнение CPU-задач в десятки раз.
- Практика связки Rust и JavaScript
- Научитесь использовать Rust в тандеме с JS и Node.js, собирать проекты и эффективно интегрировать новый код в экосистему фронта.
- Фундаментальные инженерные навыки
- Через Rust погрузитесь в Computer Science: структуры данных, параллельные вычисления, работу процессора и памяти.
- Выход за пределы JavaScript
- Станете разработчиком, который умеет решать задачи уровнем выше и не ограничивается одним инструментом.
После курса вы сможете:
- Читать и писать код на Rust для решения своих задач
- Применять WebAssembly в Frontend-проектах
- Использовать Rust в связке с Node.js
- Укрепить фундаментальные знания для роста за пределы JS
Вам подойдёт курс, если вы:
- Уверенно владеете JavaScript или другим ЯП
- Хотите расти за пределы JS и стать вне конкуренции
- Имеете или стремитесь к пониманию основ Computer Science
- Имеете опыт работы с системным программированием или backend
- Любите разбираться в сложных и крутых вещах: вы ждали «курс для Senior» — это он и есть
Rust прекрасен для изучения Computer Science. Его дизайн сам подталкивает к тому, чтобы:
- Понять, как реально работают процессор и память,
- Разобраться в многообразии структур данных,
- Погрузиться в параллельные вычисления,
- Освоить функциональную парадигму программирования.
Даже если вы не будете писать на Rust каждый день — освоить его стоит ради этого опыта.
Программа курса
1. Введение в Wasm
- Знакомство с Wasm/Wat
- История появления и развития Wasm
- Wasm за пределами JS и браузера
2. Введение в Rust
- Характеристика языка
- Экосистема Rust
- Анатомия программы
- Знакомство с базовыми конструкциями
3. Базовые типы данных в Rust
- Знакомство со встроенными типами: числа, логические значения, строки
- Приведение и преобразование типов
- Концепция владения
- Недостижимый тип и паника
- Псевдонимы типов
4. Ссылки и указатели
- Заимствование и уникальные ссылки
- RAII семантика и время жизни ссылки
- Умные и сырые указатели
- Указатели на функции
5. Массивы, Кортежи и Структуры
- Учимся работать с этими структурами данных и разбираем нюансы
- Динамические коллекции: Вектор, Двусторонняя очередь и Очередь с приоритетом
6. Перечисления и паттерн-матчинг
- Учимся работать с перечислениями
- Разбираем конструкцию match
- Паттерн мэтчинг в других конструкциях
7. Модули, крейты и стандартная библиотека
- Основная концепция
- Управление инкапсуляцией
- Знакомство со стандартной библиотекой
8. Сборка и работа в Wasm
- Разбираемся с нюансами компиляции Rust в Wasm
- Взаимодействие с JS и линейная память
- Работа с динамической памятью
9. Инструменты Rust для работы с Wasm
- Разбираемся с wasm-bindgen, js-sys и web-sys
- Знакомство с wasm-pack
10. Поведение и характеристики
- Учимся добавлять собственные методы структурам данных
- Знакомство с характеристиками и разбор нюансов
- Обобщенное программирование
11. Продвинутая работа с характеристиками
- Счетчики ссылок
- Внутренняя изменяемость
- Copy-On-Write семантика
12. Продвинутая работа со ссылками
- Счетчики ссылок
- Внутренняя изменяемость
- Copy-On-Write семантика
- ThinBox контейнер
13. Продвинутая работа с Wasm
- Разбираем нюансы работы wasm-bindgen при использовании ОО подхода
- Тестирование Wasm программ
- Интеграция с JS сборщиками
14. Итераторы и итерируемые объекты
- Основная концепция
- Функциональное API итератора и замыкания
- Выведение типа итератора
15. Коллекции данных
- Знакомимся с основными встроенными коллекциями данных и сравниваем их друг с другом
16. Практика. Использование полученных знаний для Frontend приложения
- Пишем простой графический редактор на JS/Rust/Wasm
17. Многопоточное программирование
- Основная концепция
- Встроенные потоки и альтернативные реализации
- Каналы
- Структуры данных для синхронизации
18. Асинхронное программирование
- Основная концепция
- Контейнер Future и конструкции async/await
- Runtime для асинхронного ввода/вывода
- Асинхронное взаимодействие с JS
19. Практика. Использование полученных знаний для Node.js приложения
- Пишем поточный парсер с применением парсерных комбинаторов
20. Макросы
- Основная концепция
- Декларативные макросы
- Процедурные макросы
- Небезопасные макросы
21. Wasm за пределами Web
- Поговорим про WASI и альтернативные среды исполнения Wasm
- Концепция Component Model и Interface Types
- Подводим итоги
Автор – Андрей Кобец:
- Основатель Kobezzza.Labавтор курса и преподаватель
- Автор собственного языка программирования и множества открытых библиотек
- Автор десятка мастер-классов и интенсивов по фундаментальным аспектам Frontend-разработки
Тариф «Самостоятельный»: 20 записанных лекций.








