Распечатайте свой код. На бумаге.

Фото на обложке CC-BY-SA 4.0, Corvair

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

Чтобы проверить свой код:

  1. Распечатай
  2. Найдите тихую комнату
  3. Принесите карандаш
  4. Оставьте все устройства позади. Снимите смарт-часы. Сложите ноутбук. Оставьте свой телефон на рабочем столе. Это между вами и кодом.
  5. Сядьте и читайте свой код построчно. Отметьте это, как вы идете.

Вы будете чему-то учиться каждый раз, когда делаете это.

Вот несколько вопросов, которые вы можете задать:

  • Этикетки правильные? В английском гораздо больше нюансов, чем, скажем, в Python, поэтому из этого следует, что многие дефекты в коде возникают из-за непонимания английского между программистами, а не из-за непонимания Python. С другой стороны, код — это возможность согласовать наши ментальные модели и словарный запас предметной области с нашими товарищами по команде. Это может стать очень философским.
  • Верны ли абстракции? Что мы знаем о проблемной области сейчас, что было не так ясно, когда писался этот код? Учитывая то, что мы знаем сейчас, как мы можем приблизить этот код к нашему нынешнему пониманию?
  • Какие простые рефакторинги могли бы сделать код более ясным и элегантным? Что больше не нужно, что мы предполагали раньше? Что можно разложить дальше?

Вы также найдете ошибки, естественно. Когда вы замедлитесь и посмотрите, ошибки начнут ползти прямо со страницы. Иногда от них у вас перехватывает дыхание, и вы задаетесь вопросом, как эта чертова штука вообще работала.
Как распечатать код с подсветкой синтаксиса:

Для этого существует древняя, но полезная утилита командной строки, называемая enscript.

В MacOS вам нужно brew install enscript первый.

В Linux он у вас уже может быть. Если нет, ищите пакет enscript или скачать здесь.

Чтобы распечатать код, запустите:

enscript -1rG --line-numbers -p out.ps --highlight=python \
  -c inputfile.py

Выходной файл будет выглядеть примерно так:

Зашифровать output.png

Затем вы можете либо открыть файл out.ps (в MacOS, чтобы открыть его в средстве просмотра PostScript по умолчанию), либо распечатать его на принтере по умолчанию с помощью команды lpr out.ps.

Enscript имеет много вариантов. Вот самые ценные варианты:

-1 -2 -3 -4 количество столбцов на странице
-r повернуть (ландшафтный режим)
-G причудливый заголовок (с именем файла, датой и временем)
--color=1 если у вас есть цветной принтер
-w html если вы хотите вывести HTML вместо PostScript
--help-highlight покажет, для каких языков доступна подсветка синтаксиса

Вот красивая версия, которая добавляет --color=1 а также -2. Если длина вашей линии не выходит из-под контроля, это хорошая отправная точка.

enscript -2rG --line-numbers -p out.ps --highlight=python \
  --color=1 -c inputfile.py

кодировать вывод 2.png

Код может быть довольно красивым в состоянии покоя — если вы потратите время, чтобы по-настоящему оценить его.

У вас есть инструменты, теперь отложите время.

Источники:
Печать кода на MacOS
Руководство по печати в Linux

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *