Проект

Анализатор размера диска

GO-разработчик

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

2-4
недели

Цель

Настройка окружения

Этот проект станет первым опытом создания полноценной консольной программы вне учебной среды. Студенты познакомятся с основными этапами запуска нового проекта: установкой языка программирования, настройкой рабочего окружения, подключением внешних библиотек и созданием 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 — вам ответит живой человек из команды Хекслета.