Буткемп для Rust разработчиков

Буткемп для Rust разработчиков
en
05.01.2024
9 г 50 мін 20 сек

Для кого этот буткемп? Опытные разработчики желающие перейти на 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

Вы не можете просматривать данный курс -

Array ( [bitrate] => 2657502 [filesize] => 153688500 [mime_type] => video/mp4 [length] => 440 [length_formatted] => 7:20 [width] => 1920 [height] => 1080 [fileformat] => mp4 [dataformat] => quicktime [audio] => Array ( [dataformat] => mp4 [bitrate] => 128000 [codec] => ISO/IEC 14496-3 AAC [sample_rate] => 44100 [channels] => 2 [bits_per_sample] => 16 [lossless] => [channelmode] => stereo [compression_ratio] => 0.090702947845805 ) [created_timestamp] => -2082844800 )