Часть проблем, с которыми сталкиваются студенты при выполнении домашних заданий, с самими заданиями никак не связана. Приводит к ним неправильная настройка окружения. Примеры таких проблем:
Мы рекомендуем работать в *nix-системах, так как они наиболее совместимы с софтом, который вы будете изучать и применять при выполнении домашних заданий. Если вы уже используете Linux или Mac — отлично. Ознакомиться с рекомендуемыми требованиями к компьютеру и ОС можно в этой статье.
Либо если вы работаете в Windows 10 или старше, установите WSL (Windows Subsystem for Linux) или разверните виртуальную машину в VirtualBox. Это позволит получить все преимущества Linux без установки отдельной системы.
Пройдите курс по настройке окружения на Хекслете и настройте систему в соответствии с ним. Для каждого языка программирования это свой курс, его можно найти в соответствующей профессии.
Краткие инструкции по установке языков программирования мы сохранили в репозитории.
Для настройки вам понадобятся навыки работы с терминалом и Git. Получить их помогут наши бесплатные курсы:
Чтобы упростить и автоматизировать работу с домашними заданиями, мы написали утилиту hexlet/cli. С её помощью можно связать аккаунты студента в Хекслете и на GitHub, создать репозиторий для сохранения решений и скачать домашние задания со всеми необходимыми файлами.
Чтобы ей воспользоваться:
npm install -g @hexlet/cli
Работа над домашними заданиями происходит на компьютере студента.
Для каждого домашнего задания мы подготовили отдельный набор файлов. Обычно в нем содержится:
Утилита вызывается по имени hexlet
, и содержит несколько команд:
assignments init
— создает репозиторий с именем hexlet-assignments в профиле студента на GitHub. В этот репозиторий будут отправляться все домашние задания, которые вы выполняете на Хекслете, независимо от учебной программы. Для всех учебных программ репозиторий будет один. Имя hexlet-assignments для репозитория должно быть свободно. Одновременно с созданием репозитория команда assignments init
совершает еще два действия: assignment download
— скачивает домашнее задание assignment submit
— отправляет текущее домашнее задание в репозиторий на GitHub submit
. Она выполняется из локальной директории домашней работы и пушит в ваш удаленный репозиторий все файлы, связанные с текущим заданием. Когда решение студента готово, тесты и линтер локально пройдены, то можно выполнить submit. На GitHub также подключены тесты и линтер. assignment reset
— скачивает новую версию домашнего задания. reset
, чтобы повторно скачать ее.Команды assignment download
и assignment reset
создают резервную копию домашнего задания, над которым идет работа. Если выполнить команду assignment reset
или assignment download
, то проделанная работа не потеряется. Старая версия с вашими наработками сохранится в новой директории с текущими датой и временем в названии.
У команд assignment download
и assignment reset
есть аргумент lesson-url
. Ниже мы покажем, как он используется и где взять нужные значения:
lesson-url
— адрес урока с домашним заданием. Можно взять его из адресной строки урока или скопировать уже готовую команду для скачивания на странице домашнего задания --github-token
– Personal access token из GitHub --hexlet-token
– Ваш персональный токен ХекслетаПеред тем, как начать работу с домашним заданием, нужно выполнить инициализацию проекта. Это можно сделать с помощью команды hexlet assignments init
. У нее есть несколько опций:
--github-token
– Обязательная. Personal access token (classic) из GitHub. Создайте свой Personal access token (classic) здесь. При создании токена сделайте его бессрочным и проставьте разрешения на repo и workflow --hexlet-token
– Обязательная. Ваш персональный токен Хекслета. Этот токен автоматически подставлен в команду на странице домашнего задания --hexlet-dir
– Необязательная. Директория, в которую будут скачиваться домашние задания. По умолчанию это будет директория Hexlet в вашей домашней директорииПерейдите на страницу домашней работы, которую нужно скачать. На странице по ссылке «Инициализация утилиты» идентификатор hexlet-token уже подставлен в команду для инициализации:hexlet assignments init --hexlet-token=<your hexlet="" token=""> --github-token=<token from="" github=""> </token></your>
Для инициализации проекта остаётся скопировать команду, вставить свой Personal access token (classic) из GitHub и выполнить ее:
# Можно вызывать из любого каталога
hexlet assignments init --hexlet-token=<your hexlet token> --github-token=<token from github>
Инициализацию нужно выполнить один раз перед скачиванием первой домашней работы. Если потребуется изменить расположение локальной директории с домашними работами или восстановить настройки и конфиг локального репозитория, инициализацию нужно выполнить повторно.
Далее можно переходить к выполнению домашней работы. Для команд assignment download
и assignment reset
аргументом нужно указать адрес урока с домашним заданием. Адрес урока можно скопировать из адресной строки. Также вы можете взять уже готовую команду на скачивание со страницы домашнего задания:
# Эта команда скачивает на компьютер домашнее задание с указанным lesson-url hexlet assignment download <https://ru.hexlet.io/courses/java collections/lessons/lists/assignment_unit>
# Если во время выполнения появилась новая версия
# Эта команда скачивает новую версию домашнего задания
#
Предыдущую версию и ваши наработки она скопирует в новую директорию
hexlet assignment reset <https://ru.hexlet.io/courses/java-collections/lessons/lists/assignment_unit>
Команда assignment submit
выполняется без аргументов из директории выполненного домашнего задания или любой его поддиректории:
# Отправляет выполненное домашнее задание на GitHub
# Выполняются команды git add, commit, push
hexlet assignment submit
Если вы хотите вспомнить весь список актуальных команд, можно вывести справочную информацию:
hexlet assignments --help
hexlet assignment --help</code><code>
Если возникают ошибки, убедитесь, что:
npm install -g @hexlet/cli