Для кого цей буткемп? Досвідчені розробники бажають перейти на 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)!
Ви дізнаєтесь:
Конкретні часи життя (Concrete Lifetimes)
Узагальнені інструкції часу життя (Generic Lifetimes Annotations)
Часи життя у функціях та структурах
Розумні покажчики та чому вони корисні
Неявне приведення за допомогою Deref (Implicit Deref Coercion)
Розуміння Обробки Помилок в Rust
Розуміння обробки помилок критично важливе при проектуванні ваших програм на Rust.
Ви дізнаєтесь:
Як генерувати некоректовані помилки
Як повертати помилки, що коректуються.
Як розповсюджувати помилки
Перерахування Result та Option
Як обробляти безліч типів помилок
Як використовувати будь-якийhow і thiserror
Функціональні Особливості в Rust
Однією з найпотужніших особливостей Rust є його функціональні можливості.
Ви дізнаєтесь:
Замикання та покажчики на функції
Шаблон ітератора в Rust
Реалізація шаблону ітератора
Як ітерувати за колекціями
Комбінатори та як їх використовувати
Паралелізм та async/.await
Це, ймовірно, найважливіший розділ.
Ви дізнаєтесь:
Основні концепції паралелізму
Створення потоків
Обмін повідомленнями за допомогою каналів
Спільне використання стану за допомогою Mutex
Модель async/.await
Як працюють Futures (майбутні результати)
Що таке асинхронне виконання
Що таке Tokio і як воно використовується
Що таке завдання Tokio
Виконання коду, що блокує CPU
Потоки даних (Streams)
Потужна Система Макросів у Rust
Макроси – це надзвичайно потужний спосіб розширення синтаксису мови.
Процес компіляції
Що таке макроси
Як створити декларативні макроси
Як створити процедурні макроси
Функціонально-подібні процедурні макроси
Атрибутивно-подібні процеси
погані макроси
Користувальницькі процедурні макроси на основі похідних типів (Custom Derive)
Небезпечний Rust та FFI (Foreign Function Interface)
Однією із значних переваг Rust є його здатність взаємодіяти з іншими мовами через інтерфейс зовнішніх функцій. У цьому розділі ви дізнаєтесь про небезпечний Rust та FFI!
Ви дізнаєтесь:
Небезпечний Rust та коли його використовувати
Як розіменовувати сирі покажчики
Що таке небезпечні функції
Що таке небезпечні трейти
Як змінювати статичні змінні
Як писати вбудовані асемблерні команди в Rust
Як викликати код C з Rust
Як викликати код Rust із C