Одна из особенностей Хекслета связана с выполнением практики. Во-первых, её много. Почти после каждого урока идёт упражнение по пройденной теме, а после прохождения курса — набор испытаний для закрепления материала. Во-вторых, вся практика выполняется в браузере в нашем редакторе прямо на сайте. В-третьих, после выполнения задачи всегда можно сравнить свой код с решением учителя и найти возможности для улучшения и кода, и стиля кодирования.

Hexlet IDE

Экран с практикой поделен на четыре части:

  • Слева – список файлов и директорий упражнения. Все файлы из этого списка доступны для изучения и редактирования.
  • Сверху – список вкладок с открытыми файлами. Содержимое текущей вкладки загружено в редактор monaco-editor, который используется в редакторе VS Code.
  • Снизу – четыре вкладки: первая – вывод ошибок линтинга, вторая – описание задания, остальные две – терминалы, через которые можно взаимодействовать с запущенной средой (внутри установлен bash).
  • Справа – часть, не относящаяся напрямую к редактору, например, просмотр теории данного урока или его обсуждение.

Процесс

  1. После старта практики нужно изучить задачу. Удобнее всего для этого нажать на кнопку "Задание" в правой части экрана. После этого имеет смысл изучить содержимое файлов задания, посмотреть, какой код уже написан.
  2. Если вам всё понятно, то начинайте писать код или работать с терминалом (в зависимости от задачи). Все изменения в редакторе сохраняются автоматически.
  3. Если вы захотите отправить код на проверку, нажмите на кнопку "Проверить", которая расположена в правом верхнем углу. Запуск проверки переключит редактор во вкладку OUTPUT. Она используется для вывода результатов тестирования. Именно здесь находится основная информация о том, почему не работает код. Прочитайте вывод, найдите указание на ошибку и исправьте код. Повторяйте этот процесс до тех пор, пока система не скажет, что тесты прошли успешно.

Hexlet IDE OUTPUT

Не забывайте заглядывать во вкладку LINTER, в которой отображаются стилевые ошибки. Всегда добивайтесь того, чтобы линтер был доволен, приучайте писать себя код, который соответствует общепринятым стандартам.

/usr/src/app/src/solution.py:2:12: E201 whitespace after '('
def binary( number):
           ^
/usr/src/app/src/solution.py:3:11: E271 multiple spaces after keyword
    return  ""
          ^

Стандарты кодирования на Python описаны в PEP-8.

  1. Если всё прошло успешно, отправьте ваше решение на ревью кода. Так вы сможете сохранить ваш код (код упражнений со временем удаляется) и в удобном виде сравнить его с решением учителя.

Что делать, если непонятно, что делать

В первую очередь — не отчаиваться! "Тупить" над задачей и кодом — это нормально. Для начала попробуйте почитать обсуждение этого урока с другими участниками. Для этого нажмите кнопку "Обсуждение" в правой части экрана. В наших уроках накопился большой пласт дополнительного материала именно в обсуждениях, и он сильно помогает разобраться в происходящем. Если это не помогло, то задайте вопрос самостоятельно. Наши менторы обязательно ответят и направят вас в нужную сторону.

Hexlet Discuss

В крайнем случае, вы всегда можете посмотреть решение учителя, нажав на кнопку "Решение" в меню справа. Сразу хочу предостеречь вас от соблазна смотреть решения часто. По нашим прикидкам, подсмотреть одно, два и иногда три решения за весь курс, это нормально. Больше — уже плохо; скорее всего, это означает, что в теме вы не разобрались. Курсы в профессиях зависят друг от друга, непонимание на ранних стадиях выльется в полное непонимание на более поздних. Кроме того, за прохождение упражнений с подсмотренными решениями не начисляются баллы.

В любом случае, потратьте время и проанализируйте решение учителя, сравните его со своим. Почти наверняка вы сразу найдёте места в вашем коде, которые можно улучшить.

Время от времени вам будет казаться, что все должно работать, а наши тесты (проверки) не хотят принимать ваше решение. Такое хоть и возможно, но крайне маловероятно. Специально для таких случаев мы подготовили две статьи "Не могу выполнить практику" и "Решение учителя не работает!".

Иногда, в процессе экспериментов, ломается упражнение, например, вы случайно можете стереть или поменять существующий код и забыть об этом. Чтобы вернуть упражнение к исходному виду, нажмите кнопку "Сбросить прогресс" в правой части экрана.

Проблемы

Онлайн практика — технически сложное решение, за которое приходится платить. Мы прилагаем все усилия к тому чтобы она работала надежно, но иногда возможны проблемы. Здесь я опишу, как их решать.

  1. В любом случае убедитесь что у вас отключены различные блокировщики. На Хекслете нет рекламы, но много js-кода, который обеспечивает работу практики, и блокировщики могут (и иногда это делают) его сломать.
  2. Если редактор не реагирует, или долго отсутствует соединение, нажмите F5 (перезагрузите страницу) — обычно после этого упражнение восстанавливается.
  3. В особо серьёзных ситуациях предыдущий пункт не поможет. Тогда должен помочь сброс прогресса.
  4. Если ничего не работает, то подождите хотя бы минут 10 - возможно, в это время идёт обновление серверов.
  5. Ну, и, наконец, обратитесь к службе поддержки. Для этого нажмите на кнопку "Техподдержка" в правом нижнем углу.

Для продолжения нужно перейти в курс и вступить в него.