Введение
Структура книги по языку программирования Rust
Введение
-
Что такое Rust?
- История создания, цели и философия языка.
- Ключевые особенности: безопасность памяти, отсутствие сборщика мусора, многопоточность.
- Сравнение с C/C++, Python, Go и другими языками.
-
Для кого эта книга?
- Целевая аудитория (новички, опытные разработчики, системные программисты).
- Предварительные требования (базовые знания программирования).
-
Как пользоваться книгой
- Рекомендации по изучению глав.
- Примеры кода, упражнения и проекты.
Часть 1: Основы Rust
-
Начало работы
- Установка Rust и настройка среды (rustup, Cargo, IDE/редакторы).
- Первая программа: «Hello, World!».
- Обзор инструментов: Cargo, Rustfmt, Clippy.
-
Синтаксис и базовые концепции
- Переменные, типы данных (скалярные, составные), вывод типов.
- Управляющие конструкции:
if,loop,while,for. - Функции, макросы, комментарии.
-
Владение (Ownership)
- Правила владения, перемещение данных.
- Заимствование (Borrowing) и ссылки (
&,&mut). - Время жизни (Lifetimes): базовое введение.
-
Структуры данных
- Структуры (
struct), перечисления (enum), методы. - Коллекции: векторы, строки, хэш-мапы.
- Структуры (
-
Обработка ошибок
- Типы
ResultиOption. - Макрос
panic!, обработка исключений черезunwrapиexpect. - Продвинутые техники:
?оператор, кастомные ошибки.
- Типы
Часть 2: Продвинутые концепции
-
Трейты и дженерики
- Определение и реализация трейтов.
- Дженерики: функции, структуры, методы.
- Трейт-объекты и динамическая диспетчеризация.
-
Модули и пакеты
- Организация кода: модули, крейты, workspace.
- Публичный API, управление видимостью (
pub). - Работа с Cargo: зависимости, публикация пакетов.
-
Асинхронное программирование
- Модель async/await.
- Работа с Futures, экосистема Tokio.
- Многопоточность:
Send,Sync, каналы (std::sync::mpsc).
-
Небезопасный Rust
- Ключевое слово
unsafe. - Работа с сырыми указателями.
- Взаимодействие с FFI (Foreign Function Interface).
- Ключевое слово
Часть 3: Практическое применение
-
Работа с файлами и сетью
- Чтение/запись файлов.
- HTTP-клиенты и серверы (на примере
reqwest,actix-web).
-
Взаимодействие с другими языками
- Создание Rust-библиотек для Python, C и др.
- Использование C-библиотек в Rust.
-
Работа с базами данных
- Подключение к SQL/NoSQL (Diesel, SQLx, MongoDB).
- ORM и миграции.
-
Тестирование и отладка
- Юнит-тесты, интеграционные тесты.
- Профилирование и оптимизация.
Часть 4: Реальный проект
-
Разработка CLI-утилиты
- Парсинг аргументов (
clap). - Логирование, обработка ошибок.
- Парсинг аргументов (
-
Создание веб-сервиса
- REST API на базе
Rocketилиactix-web. - Аутентификация, Middleware.
- REST API на базе
-
Оптимизация и деплой
- Сборка релизных версий.
- Деплой в Docker, облачные платформы.
Приложения
-
Глоссарий терминов Rust
-
Шпаргалка по синтаксису
-
Полезные ресурсы
- Официальная документация, форумы, сообщества (Rust Users Forum, Reddit).
- Книги и курсы.
-
Ответы к упражнениям
Заключение
- Итоги изучения Rust.
- Дальнейшие шаги: углубление в нишевые темы (embedded, WebAssembly).
- Советы по участию в open-source проектах.
Такая структура позволяет постепенно переходить от основ к сложным темам, подкрепляя теорию практическими примерами. Каждая глава может включать упражнения, советы по лучшим практикам и предупреждения о типичных ошибках.