Создайте свой первый CLI на Rust — проектный курс, продолжающий Rust для начинающих. За шесть практических занятий вы перейдёте от небольших программ к полноценному консольному приложению с внешней зависимостью, воспроизводимыми проверками качества, файловым состоянием, тестами и release-исполняемым файлом.
Курс объединяет три пошаговые лаборатории и три целевые задачи. Длинные исходные файлы, дерево модулей, тестовая инфраструктура и манифесты предоставляются в стартовых проектах. Вы будете вносить небольшие содержательные изменения в nano именно в изучаемых границах, а не копировать длинные программы в терминал.
Чему вы научитесь
- Добавлять крейт с помощью Cargo и объяснять разные роли
Cargo.tomlиCargo.lock - Включать возможности крейта и применять derive-макросы
clapдля типизированных аргументов, параметров и подкоманд - Читать сгенерированную справку и использовать типизированную проверку командной строки
- Применять rustfmt, строгий Clippy, тесты и rustdoc как воспроизводимый цикл качества перед передачей проекта
- Ориентироваться в небольшом многомодульном проекте Rust, не помещая все обязанности в
main.rs - Сохранять данные через чёткую файловую границу и передавать ошибки с контекстом
- Собирать, тестировать и запускать оптимизированный release-файл с зафиксированным графом зависимостей
- Расширять существующий CLI на уровнях парсера, библиотеки, хранилища и вывода, сохраняя прежнее поведение
Для кого этот курс
Курс предназначен для прошедших Rust для начинающих или обладающих аналогичными знаниями о владении, заимствовании, структурах, перечислениях, коллекциях, итераторах, Result, файлах, модулях, тестах, обобщениях, типажах и базовом поведении процессов командной строки.
Предварительные требования: Вы должны уметь читать проект Cargo и вносить небольшие изменения. Опыт выбора внешних крейтов, работы с clap, Clippy, rustdoc или организации полного CLI-проекта не требуется: эти темы объясняются заранее.
Учебная среда: Каждое занятие выполняется в новом терминале Linux LabEx с подготовленными Rust и стартовым проектом. Редактор по умолчанию — nano. Занятия не разделяют состояние файловой системы, поэтому каждая задача содержит независимый проект.
Часто задаваемые вопросы
Нужно ли писать всё приложение с пустого файла?
Нет. Структура проекта, длинные реализации, шаблон парсера, тесты и данные подготавливаются setup-скриптом. На каждом пошаговом этапе вы дополняете одну небольшую границу хранилища, команды или предметной области.
Почему в курсе используется clap?
Стандартной библиотеки достаточно для простого сбора аргументов из предыдущего курса. clap добавляет типизированные параметры, подкоманды, сгенерированную справку и единообразные ошибки, поэтому подходит как первая зависимость реального CLI.
Что означает «готов к передаче»?
Другой разработчик может воспроизвести зависимости, прочитать публичный интерфейс, запустить тесты и подтвердить единое форматирование и чистый lint. Курс превращает эти ожидания в конкретные команды Cargo.
Что я создам?
Вы завершите файловый трекер задач с подкомандами add, list и done, протестируете его и соберёте release-файл. Затем расширите свежую версию фильтрацией открытых задач и итоговой сводкой.


