Введение

Введение


Структура книги по языку программирования Rust


Введение

  1. Что такое Rust?

    • История создания, цели и философия языка.
    • Ключевые особенности: безопасность памяти, отсутствие сборщика мусора, многопоточность.
    • Сравнение с C/C++, Python, Go и другими языками.
  2. Для кого эта книга?

    • Целевая аудитория (новички, опытные разработчики, системные программисты).
    • Предварительные требования (базовые знания программирования).
  3. Как пользоваться книгой

    • Рекомендации по изучению глав.
    • Примеры кода, упражнения и проекты.

Часть 1: Основы Rust

  1. Начало работы

    • Установка Rust и настройка среды (rustup, Cargo, IDE/редакторы).
    • Первая программа: «Hello, World!».
    • Обзор инструментов: Cargo, Rustfmt, Clippy.
  2. Синтаксис и базовые концепции

    • Переменные, типы данных (скалярные, составные), вывод типов.
    • Управляющие конструкции: if, loop, while, for.
    • Функции, макросы, комментарии.
  3. Владение (Ownership)

    • Правила владения, перемещение данных.
    • Заимствование (Borrowing) и ссылки (&, &mut).
    • Время жизни (Lifetimes): базовое введение.
  4. Структуры данных

    • Структуры (struct), перечисления (enum), методы.
    • Коллекции: векторы, строки, хэш-мапы.
  5. Обработка ошибок

    • Типы Result и Option.
    • Макрос panic!, обработка исключений через unwrap и expect.
    • Продвинутые техники: ? оператор, кастомные ошибки.

Часть 2: Продвинутые концепции

  1. Трейты и дженерики

    • Определение и реализация трейтов.
    • Дженерики: функции, структуры, методы.
    • Трейт-объекты и динамическая диспетчеризация.
  2. Модули и пакеты

    • Организация кода: модули, крейты, workspace.
    • Публичный API, управление видимостью (pub).
    • Работа с Cargo: зависимости, публикация пакетов.
  3. Асинхронное программирование

    • Модель async/await.
    • Работа с Futures, экосистема Tokio.
    • Многопоточность: Send, Sync, каналы (std::sync::mpsc).
  4. Небезопасный Rust

    • Ключевое слово unsafe.
    • Работа с сырыми указателями.
    • Взаимодействие с FFI (Foreign Function Interface).

Часть 3: Практическое применение

  1. Работа с файлами и сетью

    • Чтение/запись файлов.
    • HTTP-клиенты и серверы (на примере reqwest, actix-web).
  2. Взаимодействие с другими языками

    • Создание Rust-библиотек для Python, C и др.
    • Использование C-библиотек в Rust.
  3. Работа с базами данных

    • Подключение к SQL/NoSQL (Diesel, SQLx, MongoDB).
    • ORM и миграции.
  4. Тестирование и отладка

    • Юнит-тесты, интеграционные тесты.
    • Профилирование и оптимизация.

Часть 4: Реальный проект

  1. Разработка CLI-утилиты

    • Парсинг аргументов (clap).
    • Логирование, обработка ошибок.
  2. Создание веб-сервиса

    • REST API на базе Rocket или actix-web.
    • Аутентификация, Middleware.
  3. Оптимизация и деплой

    • Сборка релизных версий.
    • Деплой в Docker, облачные платформы.

Приложения

  1. Глоссарий терминов Rust

  2. Шпаргалка по синтаксису

  3. Полезные ресурсы

    • Официальная документация, форумы, сообщества (Rust Users Forum, Reddit).
    • Книги и курсы.
  4. Ответы к упражнениям


Заключение

  • Итоги изучения Rust.
  • Дальнейшие шаги: углубление в нишевые темы (embedded, WebAssembly).
  • Советы по участию в open-source проектах.

Такая структура позволяет постепенно переходить от основ к сложным темам, подкрепляя теорию практическими примерами. Каждая глава может включать упражнения, советы по лучшим практикам и предупреждения о типичных ошибках.