Асинхронный многопоточный Rust для Python/Java разработчиков - просто, на пальцах и примерах
UWDC
0:00 / 0:00
Асинхронный многопоточный Rust для Python/Java разработчиков - просто, на пальцах и примерах
724 просмотра · 1 год назад
UWDC
1,52 тыс. подписчиков
724 просмотра · 1 год назад
Александр Сербул, Битрикс, Руководитель направлением контроля качества интеграции и внедрений
Асинхронный многопоточный Rust для Python/Java разработчиков - просто, на пальцах и примерах
00:00 — Благодарность организаторам конференции
00:34 — Введение в Rust: зачем изучать язык
01:15 — О себе: опыт в IT и переход на Rust
03:25 — Сравнение Rust с Go, Java и другими языками
05:32 — История Rust: Грейден Хор и философия языка
06:41 — Типизация в Rust: всё имеет тип
07:07 — Компилятор Rust как тренажёр мозга
07:42 — Автовывод типов и алгоритм Хиндли-Милнера
08:22 — Отказ от наследования: композиция вместо ООП
09:35 — Структуры и методы в Rust
10:21 — Типы данных: struct, tuple struct, unit struct, enum
11:27 — Отсутствие null: Option вместо null
12:10 — Перечисления enum с данными: мощь сум-типов
14:34 — Pattern matching: разбор структур без if-else
16:52 — Product types и sum types: теория типов
17:40 — Result вместо исключений
19:23 — Нет исключений: Result и panic
20:28 — Выразительность и производительность Rust
21:08 — Нет сборщика мусора: RAII и деструкторы
22:21 — Ownership и borrowing: решение aliasing
24:08 — Выделение памяти: стек vs хип, Box
25:08 — Деструкторы и управление временем жизни
26:01 — Передача владения: афинные типы данных
27:44 — Многопоточность: безопасность на уровне типов
29:38 — Проблемы многопоточности в других языках
30:29 — Send и Sync трейты для потокобезопасности
32:36 — Иммутабельность по умолчанию: RefCell, Mutex
34:28 — Атомики для простых счётчиков
35:38 — Матрёшки типов: Arc, Mutex для concurrency
37:07 — Асинхронность: async/await в Rust
37:47 — Веб-серверы и фреймворки в Rust
38:11 — Пример проекта: 4000 удалений файлов/сек
39:00 — Заключение и вопросы