Анализатор размера диска
Программа для анализа размера диска, которая позволяет получать информацию о занятом и свободном пространстве.
Цель
Настройка окружения
Этот проект станет первым опытом создания полноценной консольной программы вне учебной среды. Студенты познакомятся с основными этапами запуска нового проекта: установкой языка программирования, настройкой рабочего окружения, подключением внешних библиотек и созданием git-репозитория. Проект также поможет углубить навыки работы с терминалом и командной строкой, что является важной частью базового профессионального набора.
Код
В рамках проекта студенты будут работать с файловой системой, управлять модулями и импортом функций. Они научатся структурировать программу, организовывать взаимодействие с пользователем через CLI, подключать сторонние библиотеки и использовать официальную документацию для их настройки.
Тестирование
Для обеспечения надежности и корректности работы утилиты студенты реализуют набор автоматизированных тестов. Тесты проверят ключевые функции программы, помогут своевременно выявлять ошибки и обеспечат стабильность кода при дальнейшем развитии проекта.
Описание
Студенты создадут утилиту командной строки, которая определяет размер файла или директории с гибкими настройками вывода. Аналог стандартной утилиты в UNIX-системах — du.
Основные функции:
- Рекурсивный обход — вычисление размера всех вложенных файлов и папок при необходимости.
- Человекочитаемый формат — автоматический выбор подходящих единиц измерения (байты, килобайты, мегабайты и т.д.).
- Поддержка скрытых файлов — возможность включать в подсчёт файлы и папки, начинающиеся с точки (dotfiles).
Пример использования
С флагом --human
(или -H
) выводится удобочитаемый размер:
./bin/hexlet-path-size output.dat --human
24.0MB output.dat
С опцией --all
(или -a
) учитываются все файлы, включая скрытые:
./bin/hexlet-path-size project/ -H -a
27.0MB project/
Флаг --recursive
(или -r
) включает все вложенные файлы и директории:
./bin/hexlet-path-size project/ -H -a -r
31.0MB project/
Справка по использованию:
./bin/hexlet-path-size -h
NAME:
hexlet-path-size - print size of a file or directory; supports -r (recursive), -H (human-readable), -a (include hidden)
USAGE:
hexlet-path-size [global options] path
GLOBAL OPTIONS:
--recursive, -r recursive size of directories (default: false)
--human, -H human-readable sizes (auto-select unit) (default: false)
--all, -a include hidden files and directories (default: false)
--help, -h show help
Проекты входят в стоимость обучения на любом плане: самостоятельном, групповом и индивидуальном. Дополнительно платить не нужно.
Проекты дают опыт разработки в реальной среде. Проходите каждый проект сразу после изучения курсов, которые стоят в учебном плане перед ним, — это отличный способ глубже разобраться в материале.
Проекты — портфолио программиста. Их код останется в вашем аккаунте на GitHub и будет преимуществом при поиске работы.
Чтобы узнать о том, что такое проекты и в чём их польза, прочитайте нашу статью «Анатомия проектов Хекслета».
Задавайте вопросы в разделе «Обсуждение» на странице шага, на котором возникли трудности, или вашему наставнику. Изучите вопросы других студентов в «Обсуждениях»: там собрана большая база знаний, ей можно и нужно пользоваться.
Автоматизированные тесты и линтер. В групповом и индивидуальном форматах наставник дополнительно проверит то, что тестами проверить невозможно (архитектуру проекта, правильность именования, удачность решений), и проведёт код-ревью, чтобы сделать проект ещё качественнее.
Нажмите на виджет в правом нижнем углу экрана и поищите ответ в нашей справке. Или сразу пишите на support@hexlet.io — вам ответит живой человек из команды Хекслета.