Основные концепции Rust
Рассмотрим основные концепции и особенности языка программирования Rust. Установим основные инструменты, компилятор и среду разработки. Разберёмся в базовом и продвинутом синтаксисе Rust.
Тема 1: Основные концепции и особенности Rust
Тема 2: Основные элементы синтаксиса. Часть 1
Тема 3: Основные элементы синтаксиса. Часть 2
Тема 4: Владение и заимствование
Тема 5: Обобщённое программирование. Часть 1
Тема 6: Обобщённое программирование. Часть 2
Тема 7: Макросы
Тема 8: Дополнительные вопросы синтаксиса
Модули, крейты и тесты
Научимся разбивать проект на модули, писать тесты и примеры. Разберёмся с крейтами и пакетами. Воспользуемся сторонними крейтами.
Тема 1: Разбиение проекта на файлы и логические блоки. Тесты и примеры
Тема 2: Пакеты и крейты. Использование сторонних крейтов. Версии и features
Тема 3: Консультация по вопросам ДЗ (Q&A)
Стандартная библиотека
Научимся использовать стандартные перечисления и реализовывать стандартные трайты. Разберёмся с управлением памятью и структурами данных. Научимся читать и писать файл и общаться по сети.
Тема 1: Основные перечисления и типажи. Часть 1
Тема 2: Основные перечисления и типажи. Часть 2
Тема 3: Умные указатели и коллекции. Часть 1
Тема 4: Умные указатели и коллекции. Часть 2
Тема 5: Ввод и вывод
Тема 6: Работа с файлами и сетью
Тема 7: Пишем клиент-серверное приложение
Многопоточность
Познакомимся с проблемами многопоточного кода. Запустим выполнение задачи в отдельном системном потоке. Напишем свой ThreadPool. Создадим асинхронное клиент-серверное приложение. Организуем взаимодействие между процессами.
Тема 1: Проблемы многопоточного кода. Запуск параллельного потока
Тема 2: Контроль корректности многопоточного приложения на стадии компиляции
Тема 3: Пишем свой ThreadPool
Тема 4: Консультация по вопросам ДЗ (Q&A)
Тема 5: Типы многозадачности. Асинхронность
Тема 6: Асинхронность под капотом
Тема 7: Делаем клиент-серверное приложение асинхронным
Тема 8: Межпроцессное взаимодействие и синхронизация
Тема 9: Консультация по вопросам ДЗ (Q&A)
Архитектура
Научимся проектировать архитектуру Rust приложений. Рассмотрим элементы функционального и объектно-ориентированного программирования в Rust. Углубимся в обработку ошибок. Будем поддерживать инварианты и использовать паттерны.
Тема 1: Rust и ООП
Тема 2: Rust и ФП
Тема 3: Обработка ошибок
Тема 4: Инварианты
Тема 5: Паттерны
Фреймворки и библиотеки
Рассмотрим современную инфраструктуру Rust. Научимся логировать, отлаживать и профилировать приложение. Попробуем применить Rust в различных областях IT.
Тема 1: Популярные утилитарные библиотеки
Тема 2: Логирование, отладка и профилирование
Тема 3: Rust и Backend
Тема 4: Rust и GUI
Тема 5: Rust и GameDev
Тема 6: Rust и Frontend
Тема 7: Rust и Blockchain
Тема 8: Взаимодействие с другими языками
Проектная работа
Заключительный месяц курса посвящен проектной работе. Свой проект — это то, над чем интересно поработать слушателю. То, что можно создать на основе знаний, полученных на курсе. При этом не обязательно закончить его за месяц. В процессе написания по проекту можно получить консультации преподавателей.
Тема 1: Выбор темы и организация проектной работы
Тема 2: Консультация по проектам и домашним заданиям
Тема 3: Защита проектных работ
Тема 4: Подведение итогов курса