Для кого этот буткемп? Опытные разработчики желающие перейти на Rust.Изучите язык будущего. Ваше время ценно (буквально, $148,688/год). Изучайте Rust БЫСТРО с помощью буткемпа, вместо того чтобы копаться в ресурсах низкого качества. Студенты/Выпускники в поисках работы. Изучение Rust - отличное дополнение к резюме. Выделитесь среди других кандидатов. Станьте компетентным программистом. Получите доступ к сообществу, которое может помочь вам найти первую работу. И... Вы! Энтузиаст Rust. Rust - инновационный язык, который расширит ваше мышление! Передовые технологии создаются на Rust.
Вы научитесь настраивать вашу среду разработки, конфигурировать вашу среду разработки (IDE) и устанавливать необходимые плагины. Затем вы создадите свой первый проект на Rust!
Вы узнаете:
- Как настроить вашу среду разработки
- Настройка вашей IDE и плагинов
- Создание пакетов Rust с помощью Cargo
- Переменные и типы данных в Rust
- Константные и статические переменные
- Функции и управление потоком выполнения
Понимание управления памятью критически важно при изучении Rust! В этом разделе вы узнаете об управлении памятью с самого начала!
Вы узнаете:
- Мастер-класс по компьютерным наукам на основе Rust
- Как работает механизм владения
- Как работает механизм заимствования
- Что такое срезы
- Типы строк (str, &str и String)
Rust не использует классы или объекты! Вместо этого Rust использует структуры (Structs) и перечисления (Enums) для создания пользовательских типов данных. В этом разделе вы научитесь создавать свои собственные типы!
Вы узнаете:
- Как создавать структуры и перечисления
- Как использовать блоки реализации
- Сопоставление с образцом
- Перечисления Option и Result
- Векторы
Как Структурировать Ваши Проекты на Rust
В этом разделе я объясню, как работают модули, понятным образом. Также я расскажу о структурировании более крупных проектов и публикации вашей работы на Crates.io.
Вы узнаете:
- Обзор структуры проекта
- Система модулей
- Внешние зависимости
- Условная компиляция
- Как структурировать крупные проекты
- Публикация ваших проектов на Rust
Как Тестировать и Документировать Ваш Код
Тесты являются критически важной частью написания надежного кода. В этом разделе вы научитесь писать и структурировать модульные и интеграционные тесты в Rust. Мы также рассмотрим вопросы документирования.
Вы узнаете:
- Как писать модульные тесты
- Как писать интеграционные тесты
- Как структурировать ваши тесты
- Комментарии к документации
Полиморфизм с Помощью Дженериков и Трейтов
Rust не поддерживает классическое наследование! Вместо этого, полиморфизм достигается через дженерики (обобщения) и трейты (черты). В этом разделе вы узнаете, как работают оба этих механизма.
Вы узнаете:
- Как определять дженерики
- Система трейтов
- Границы трейтов и объекты трейтов
- Супертрейты
- Статическая диспетчеризация против динамической диспетчеризации
- Как выводить трейты
- Трейты в стандартной библиотеке
Продвинутое Управление Памятью
Управление памятью не заканчивается на механизмах владения и заимствования! В этом разделе вы узнаете о времени жизни (lifetimes)! Мы также рассмотрим различные умные указатели в Rust.
Вы узнаете:
- Конкретные времена жизни (Concrete Lifetimes)
- Обобщенные аннотации времени жизни (Generic Lifetimes Annotations)
- Времена жизни в функциях и структурах
- Умные указатели и почему они полезны
- Неявное приведение с помощью Deref (Implicit Deref Coercion)
Понимание Обработки Ошибок в Rust
Понимание обработки ошибок критически важно при проектировании ваших приложений на Rust. В этом разделе мы рассмотрим, как работает обработка ошибок в Rust.
Вы узнаете:
- Как генерировать некорректируемые ошибки
- Как возвращать корректируемые ошибки
- Как распространять ошибки
- Перечисления Result и Option
- Как обрабатывать множество типов ошибок
- Как использовать anyhow и thiserror
Функциональные Особенности в Rust
Одной из самых мощных особенностей Rust являются его функциональные возможности. В этом разделе мы рассмотрим замыкания, указатели на функции, итераторы и многое другое!
Вы узнаете:
- Замыкания и указатели на функции
- Шаблон итератора в Rust
- Реализация шаблона итератора
- Как итерировать по коллекциям
- Комбинаторы и как их использовать
Параллелизм и async/.await
Это, вероятно, САМЫЙ ВАЖНЫЙ раздел. Понимание параллелизма критически важно, особенно при использовании Rust для веб-проектов.
Вы узнаете:
- Основные концепции параллелизма
- Создание потоков
- Обмен сообщениями с помощью каналов
- Совместное использование состояния с помощью Mutex
- Модель async/.await
- Как работают Futures (будущие результаты)
- Что такое асинхронное выполнение
- Что такое Tokio и как оно используется
- Что такое задачи Tokio
- Выполнение кода, блокирующего CPU
- Потоки данных (Streams)
Мощная Система Макросов в Rust
Макросы - это чрезвычайно мощный способ расширения синтаксиса языка. В этом разделе вы узнаете о системе макросов в Rust с самого начала!
- Процесс компиляции
- Что такое макросы
- Как создать декларативные макросы
- Как создать процедурные макросы
- Функционально-подобные процедурные макросы
- Атрибутивно-подобные процедурные макросы
- Пользовательские процедурные макросы на основе производных типов (Custom Derive)
Небезопасный Rust и FFI (Foreign Function Interface)
Одним из значительных преимуществ Rust является его способность взаимодействовать с другими языками через интерфейс внешних функций. В этом разделе вы узнаете о небезопасном Rust и FFI!
Вы узнаете:
- Небезопасный Rust и когда его использовать
- Как разыменовывать сырые указатели
- Что такое небезопасные функции
- Что такое небезопасные трейты
- Как изменять статические переменные
- Как писать встроенные ассемблерные команды в Rust
- Как вызывать код C из Rust
- Как вызывать код Rust из C