Во второй лекции мы подготовим рабочую среду для разработки на Rust. Вы узнаете, как установить Rust, настроить редактор и подключить полезные инструменты.
Rustup — это такая удобная штука, которая помогает установить Rust и следить за его версиями. Благодаря ей работать с rustc
(это компилятор, который "переводит" твой код для компьютера) и cargo
(менеджер проектов) становится проще простого!
Давай разберёмся, как поставить 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 улучшается, и ты можешь обновить его до новой версии. Просто напиши в терминале:
rustup update
Компьютер скачает свежую версию, и всё готово!
Иногда хочется попробовать разные версии Rust. Вот как это сделать:
rustup install nightly
rustup override set nightly
rustup override set stable
Совет: Для начала лучше использовать стабильную версию — она надёжная и меньше шансов запутаться.
Cargo — это основа экосистемы Rust, управляющая зависимостями и сборкой. Это твой лучший друг в мире Rust. Он помогает следить за "деталями" твоего проекта (например, за дополнительными кусочками кода, которые ты подключаешь) и собирает всё в готовую программу. Представь его как помощника, который делает за тебя скучную работу!
cargo new my_project
cd my_project
Хочешь начать новый проект?
Открой терминал и напиши первую команду — она создаст папку с именем my_project
, где будет всё для твоей программы.
Потом вторая команда "заходит" в эту папку, чтобы ты мог там работать.
cargo build
cargo run
cargo build --release
Теперь, когда у тебя есть проект, давай его "соберём" и запустим:
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 — для глубокого анализа и работы с большими проектами.
Лёгкий, кроссплатформенный редактор кода от Microsoft с мощной поддержкой расширений. Подходит для множества языков, включая Rust (с плагином rust-analyzer).
Особенности: Высокая кастомизация, встроенный терминал, поддержка Git, быстрая работа даже на слабых машинах.
Скачайте с code.visualstudio.com.
Расширения: Установите rust-analyzer
и CodeLLDB
.
Настройки (settings.json
):
{
"rust-analyzer.checkOnSave.command": "clippy",
"editor.formatOnSave": true
}
Мощная IDE от JetBrains, ориентированная на профессиональную разработку. Для Rust доступен плагин (Rust plugin), превращающий её в полноценную среду разработки.
Особенности: Продвинутые функции рефакторинга, автодополнения и анализа кода, но более тяжеловесна по сравнению с VSCode.
Скачайте с jetbrains.com.
Плагин: Установите Rust
через Marketplace.
Совет: VSCode проще для Rust, IntelliJ — для крупных проектов.
Инструмент для автоматического форматирования кода на Rust. Приводит код к единому стилю, улучшая читаемость и соответствие стандартам оформления, принятым в сообществе Rust.
cargo fmt
Настройка (.rustfmt.toml
):
max_width = 80
Все опции можно найти в официальной документации
Линтер для Rust, который помогает находить потенциальные ошибки, улучшать стиль кода и избегать распространённых антипаттернов. Предоставляет полезные советы и предупреждения во время разработки.
Линтер — это инструмент статического анализа кода, который автоматически проверяет исходный код на наличие ошибок, потенциальных проблем, нарушений стиля или несоответствий принятым стандартам. Он помогает разработчикам улучшить качество кода, сделать его более читаемым и поддерживаемым, а также избежать типичных ошибок ещё до запуска программы.
rustup component add clippy
cargo clippy
Мощный инструмент анализа кода для Rust, обеспечивающий автодополнение, переход к определениям, подсказки типов и диагностику ошибок в реальном времени. Используется в основном в IDE для повышения продуктивности разработчиков.
rustup component add rust-analyzer
rust-analyzer --version
Совет: Интегрируйте clippy
и rustfmt
в процесс.
rustc --version
rustup update
Установите VSCode и rust-analyzer
. Проверьте автодополнение:
fn main() {
let x = String::new();
println!("{}", x);
}
rustup component add clippy rustfmt
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
для анализа кода в проекте. Она проверяет код на ошибки, неэффективные конструкции и предлагает улучшения, выдавая предупреждения и рекомендации.
cargo run
Совет: Добавьте target/
в .gitignore
.
Вы настроили окружение для Rust: от rustup
до редактора и инструментов. Экспериментируйте с настройками!