Глава 2: Установка и настройка окружения

Содержание: Rustup: установка и обновление Cargo: менеджер пакетов и сборки Редакторы: VSCode, IntelliJ, и настройки Инструменты: rustfmt, clippy, rust-analyzer Упражнение: Настроить окружение и проверить форматирование

Во второй лекции мы подготовим рабочую среду для разработки на Rust. Вы узнаете, как установить Rust, настроить редактор и подключить полезные инструменты.


Rustup: установка и обновление

Rustup — это такая удобная штука, которая помогает установить Rust и следить за его версиями. Благодаря ей работать с rustc (это компилятор, который "переводит" твой код для компьютера) и cargo (менеджер проектов) становится проще простого!

Установка Rustup

Давай разберёмся, как поставить Rustup и начать программировать:

Linux/macOS:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh source $HOME/.cargo/env 

Если у тебя Linux или Mac, открой терминал (это где команды пишут), скопируй первую строчку и нажми Enter. Компьютер сам всё скачает и установит. Потом напиши вторую строчку, чтобы он "понял", что Rust теперь у него есть.

Windows: Скачайте rustup-init.exe с rust-lang.org.

Если у тебя Windows, зайди на сайт по ссылке, найди кнопку для скачивания и загрузи файл rustup-init.exe. Запусти его, и он установит всё, что нужно.

Проверяем, получилось ли:

rustc --version cargo --version 

Открой терминал и по очереди напиши эти команды. Если после каждой появятся цифры (например, rustc 1.77.0), значит, всё работает, и ты молодец!

Обновление Rust

Со временем Rust улучшается, и ты можешь обновить его до новой версии. Просто напиши в терминале:

rustup update 

Компьютер скачает свежую версию, и всё готово!

Переключение версий

Иногда хочется попробовать разные версии Rust. Вот как это сделать:

rustup install nightly
rustup override set nightly
rustup override set stable 

Совет: Для начала лучше использовать стабильную версию — она надёжная и меньше шансов запутаться.


Cargo: менеджер пакетов и сборки

Cargo — это основа экосистемы Rust, управляющая зависимостями и сборкой. Это твой лучший друг в мире Rust. Он помогает следить за "деталями" твоего проекта (например, за дополнительными кусочками кода, которые ты подключаешь) и собирает всё в готовую программу. Представь его как помощника, который делает за тебя скучную работу!

Создание проекта

cargo new my_project
cd my_project

Хочешь начать новый проект?
Открой терминал и напиши первую команду — она создаст папку с именем my_project, где будет всё для твоей программы.
Потом вторая команда "заходит" в эту папку, чтобы ты мог там работать.

Сборка и запуск

cargo build
cargo run
cargo build --release

Теперь, когда у тебя есть проект, давай его "соберём" и запустим:

Добавление зависимостей

Иногда тебе нужны готовые кусочки кода от других людей (например, чтобы генерировать случайные числа). Это называется "зависимости". Открой файл Cargo.toml в своём проекте (он уже есть в папке) и добавь туда строчки:

[dependencies]
rand = "0.8.5"

Это говорит Cargo: "Скачай мне штуку под названием rand версии 0.8.5". Она поможет, например, делать случайный выбор в программе. После этого Cargo сам всё найдёт и подключит, когда ты снова используешь cargo build или cargo run.

Крейт rand предоставляет функциональность для генерации случайных чисел в Rust. Версия "0.8.5" указывает конкретную стабильную версию библиотеки.

cargo build

Компилирует проект и создаёт исполняемый файл (в debug-режиме по умолчанию).

Полезные команды

cargo check

Проверяет код на ошибки компиляции без создания исполняемого файла (быстрее, чем build).

cargo test

Запускает все тесты, определённые в проекте, для проверки корректности кода. Об этом будет подробнее в следующих главах.

cargo doc --open

Генерирует документацию для проекта и зависимостей, затем открывает её в браузере. Об этом будет подробнее в следующих главах.

Совет: Используйте cargo check для быстрой проверки.


Редакторы: VSCode, IntelliJ и настройки

Оба редактора популярны среди разработчиков, выбор зависит от предпочтений: VSCode — для скорости и гибкости, IntelliJ — для глубокого анализа и работы с большими проектами.

Visual Studio Code(VSCode)

Лёгкий, кроссплатформенный редактор кода от Microsoft с мощной поддержкой расширений. Подходит для множества языков, включая Rust (с плагином rust-analyzer).

Особенности: Высокая кастомизация, встроенный терминал, поддержка Git, быстрая работа даже на слабых машинах.

Скачайте с code.visualstudio.com.

Расширения: Установите rust-analyzer и CodeLLDB.

Настройки (settings.json):

{
    "rust-analyzer.checkOnSave.command": "clippy",
    "editor.formatOnSave": true
}

IntelliJ IDEA

Мощная IDE от JetBrains, ориентированная на профессиональную разработку. Для Rust доступен плагин (Rust plugin), превращающий её в полноценную среду разработки.

Особенности: Продвинутые функции рефакторинга, автодополнения и анализа кода, но более тяжеловесна по сравнению с VSCode.

Скачайте с jetbrains.com.

Плагин: Установите Rust через Marketplace.

Совет: VSCode проще для Rust, IntelliJ — для крупных проектов.


Инструменты: rustfmt, clippy, rust-analyzer

rustfmt

Инструмент для автоматического форматирования кода на Rust. Приводит код к единому стилю, улучшая читаемость и соответствие стандартам оформления, принятым в сообществе Rust.

cargo fmt

Настройка (.rustfmt.toml):

max_width = 80

Все опции можно найти в официальной документации

clippy

Линтер для Rust, который помогает находить потенциальные ошибки, улучшать стиль кода и избегать распространённых антипаттернов. Предоставляет полезные советы и предупреждения во время разработки.

Линтер — это инструмент статического анализа кода, который автоматически проверяет исходный код на наличие ошибок, потенциальных проблем, нарушений стиля или несоответствий принятым стандартам. Он помогает разработчикам улучшить качество кода, сделать его более читаемым и поддерживаемым, а также избежать типичных ошибок ещё до запуска программы.

rustup component add clippy
cargo clippy

rust-analyzer

Мощный инструмент анализа кода для Rust, обеспечивающий автодополнение, переход к определениям, подсказки типов и диагностику ошибок в реальном времени. Используется в основном в IDE для повышения продуктивности разработчиков.

rustup component add rust-analyzer
rust-analyzer --version

Совет: Интегрируйте clippy и rustfmt в процесс.


Упражнение: Настроить окружение и проверить форматирование

Шаг 1: Проверка Rust

rustc --version
rustup update

Шаг 2: Настройка редактора

Установите VSCode и rust-analyzer. Проверьте автодополнение:

fn main() {
    let x = String::new();
    println!("{}", x);
}

Шаг 3: Установка инструментов

rustup component add clippy rustfmt

Шаг 4: Тест форматирования

cargo new format_test
cd format_test

В src/main.rs:

fn main() { let x=42;println! ("Number: {}",x); }
cargo fmt

Эта команда вызывает инструмент rustfmt через менеджер пакетов Cargo. Она автоматически форматирует весь код в проекте согласно стандартному стилю Rust (или пользовательским настройкам, если они указаны).

cargo clippy

Эта команда запускает линтер Clippy для анализа кода в проекте. Она проверяет код на ошибки, неэффективные конструкции и предлагает улучшения, выдавая предупреждения и рекомендации.

Шаг 5: Запуск

cargo run

Совет: Добавьте target/ в .gitignore.


Заключение

Вы настроили окружение для Rust: от rustup до редактора и инструментов. Экспериментируйте с настройками!