Добро пожаловать в Comprehensive Rust 🦀
Это бесплатный курс по Rust, разработанный командой Android в Google. Курс охватывает весь спектр Rust: от базового синтаксиса до сложных тем, таких как обобщённые типы (generics) и обработка ошибок.
Актуальная версия курса доступна по адресу https://r007.github.io/EmbeddedRust-Rus/comprehensive-rust/. Если вы читаете курс в другом месте, пожалуйста, проверьте обновления там.
Курс доступен и на других языках. Выберите нужный язык в правом верхнем углу страницы или откройте страницу Переводы, где перечислены все доступные переводы.
Курс также доступен в формате EPUB.
Цель курса — научить вас языку Rust. Мы предполагаем, что вы ничего не знаете о Rust, и надеемся:
- Дать достаточно хорошее представление о синтаксисе и семантике Rust.
- Научить работать с существующим кодом и писать новые программы на Rust.
- Показать распространённые идиомы языка Rust.
Первые четыре дня курса мы называем «Основы Rust» (Rust Fundamentals).
Опираясь на это, вы можете углубиться в одну или несколько специализированных тем:
- Android: рассчитанный на полдня курс по использованию Rust для разработки на платформе Android (AOSP). Сюда входит взаимодействие с C, C++ и Java.
- Chromium: рассчитанный на полдня курс по использованию Rust в браузерах на базе Chromium. Включает взаимодействие с C++ и подключение сторонних крейтов в Chromium.
- Bare-metal: занятие на целый день по использованию Rust для разработки bare-metal (встраиваемых систем). Рассматриваются как микроконтроллеры, так и прикладные процессоры.
- Конкурентность: занятие на целый день, посвящённое конкурентности в Rust. Мы рассмотрим как классическую конкурентность (вытесняющее планирование с помощью потоков и мьютексов), так и конкурентность на основе async/await (кооперативная многозадачность с помощью фьючерсов).
За рамками курса
Rust — это объёмный язык, и мы не сможем охватить его целиком за несколько дней. Темы, выходящие за рамки курса:
- Чтобы научиться писать макросы, обратитесь к The Rust Book и Rust by Example.
Предположения
Курс предполагает, что вы уже умеете программировать. Rust — статически типизированный язык, и мы иногда будем сравнивать его с C и C++, чтобы лучше объяснить или противопоставить подход Rust.
Если вы знаете, как программировать на языке с динамической типизацией, например Python или JavaScript, то и вам будет несложно следить за курсом.
Это пример заметок для преподавателя. Мы будем использовать их для добавления дополнительной информации к слайдам. Это могут быть ключевые моменты, которые преподаватель должен осветить, а также ответы на типичные вопросы, которые возникают в ходе прохождения курса.