Безопасная разработка
40 ак.часов
Rust: Основы системного программирования для начинающих
-
О КУРСЕRust — это системный язык программирования, обеспечивающий безопасность памяти и конкурентность без использования сборщика мусора.
Курс охватывает ключевые концепции языка Rust, включая систему владения, заимствования и времена жизни. Вы изучите базовые и сложные типы данных, работу с коллекциями, функции, обработку ошибок и многопоточность. Особое внимание уделяется обобщённому программированию, динамическому и статическому полиморфизму, а также работе с потоками и синхронизацией
Разработчики
Программисты
Программисты, желающие научиться новому языку
Модуль 1. Введение в Rust
Знакомство с Rust. Подготовка к обучению
Модуль 2. Типы данных, переменные и функции
Типы данных. Переменные и функции
Сложные типы данных. Кортеж, структура, перечисление
Ветвление и циклы
Практика: Типы данных. Переменные и функции. Ветвление и циклы
Модуль 3. Владение, заимствование и управление ресурсами
Управление ресурсами. Клонирование. Трейт Copy. Принцип владения
Владение. Ссылки и заимствование
Практика: Владение и заимствование
Модуль 4. Коллекции и структуры данных
Коллекции. Слайсы, массивы, строки
Q&A сессия
Структуры и методы: инкапсуляция
Перечисления и сопоставление с образцом (pattern matching)
Практика: Структуры и методы. Перечисления и pattern matching
Модуль 5. Типы данных и обработка ошибок
Введение в систему типов. Типы стандартной библиотеки: Result, Option, ()
Функции в Rust. Введение в лямбда-функции и их использование
Обработка ошибок: Оператор ?, Result, Option
Практика: работа с Result, Option
Модуль 6. Обобщённое программирование и времена жизни
Обобщённое программирование: статический полиморфизм
Q&A сессия
Времена жизни
Обобщённое программирование. Наследование через трейты
Обобщенное программирование: динамический полиморфизм (dyn Trait, dyn Any)
Практика: Обобщённое программирование
Модуль 7. Коллекции и алгоритмы. Хэш-таблицы и итераторы
Коллекции: сложность алгоритмов (Big O), хэш-таблицы и векторы
Коллекции. Итераторы.
Практика: коллекции и итераторы
Модуль 8. Многопоточность и управление памятью
Работа с кучей. Box, Arc, Rc. RAII
Потоки. Создание потоков. Send + Sync
Лямбда-функции в многопоточной среде. Send + Sync, move и Arc
Mutex, Atomic
Практика: потоки, куча, mutex, atomic
-
Получаемый документ
-
Для успешного прохождения курса необходимы:
- опыт программирования на любом языке (Python, C++, Java и др.)
- знание базовых понятий структурного и объектно-ориентированного программирования
- понимание работы памяти и основ многопоточности будет преимуществом, но не является обязательным
-
По окончании курса слушатели смогут:
◉ разрабатывать программы на Rust, используя систему владения, заимствования и времён жизни
◉ работать с базовыми и сложными типами данных, коллекциями и итераторами
◉ использовать обобщённое программирование и полиморфизм через трейты
◉ обрабатывать ошибки с помощью Result, Option и Оператора ?
◉ работать с многопоточностью, использовать Mutex, Arc, Atomic и другие механизмы синхронизации
◉ разрабатывать эффективный и безопасный код без использования сборщика мусора


