Предложение отличного интерфейса командной строки больше связано с тем, чтобы ваши команды работали хорошо и следовали передовым методам, а не с новым изобретением концепции интерфейса командной строки. Лучший способ научиться создавать отличные CLI — это изучить другие CLI, которые имеют отличную репутацию, и проанализировать, что делает их отличными.

Экосистема CLI обширна, и может быть трудно найти идеальное соответствие вашим потребностям. Есть много разных вариантов. Вот некоторые из лучших инструментов и библиотек CLI:

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

Пример интерфейса командной строки Git

Git CLI великолепен, потому что команды просты для понимания и использования. Например, команда `git status` проста для понимания и сообщает вам именно то, что вам нужно знать: текущий статус вашего репозитория git.

Вывод команд git также легко читается. Команда `git status`, например, выводит список измененных файлов и указывает, подготовлены ли они для фиксации или нет. Этот вывод легко сканировать и понять с первого взгляда.

Наконец, документация git превосходна. Сама команда `git` имеет встроенную справочную систему, которой легко следовать. Например, команда `git help` отображает список всех доступных команд git, а команда `git help ‹command›` отображает справочную документацию для конкретной команды git.

Примеры других инструментов CLI:

Распространяйте инструмент в виде одного файла без зависимостей

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

Один из способов избежать этого — распространять инструмент CLI в виде одного файла. Таким образом, пользователи могут просто загрузить файл и запустить его без необходимости устанавливать что-либо еще.

Другой способ избежать зависимостей — использовать язык, который не требует никаких зависимостей. Например, Go — отличный язык для создания интерфейсов командной строки, поскольку он не требует никаких зависимостей. Это означает, что пользователи могут просто загрузить бинарный файл Go и запустить ваш инструмент командной строки без необходимости устанавливать что-либо еще.

Если вы не можете избавиться от зависимостей, сохраняйте размер зависимостей небольшим. Это означает, что ваш инструмент CLI должен иметь только несколько зависимостей, и эти зависимости должны широко использоваться и поддерживаться в хорошем состоянии.

Вы также можете попробовать объединить приложение и все его зависимости в один пакет. Например, PyInstaller — это инструмент для связывания Python.

Убедитесь, что ваши команды понятны

Ваш инструмент CLI должен быть простым в использовании, и это начинается с ваших команд. Ваши команды должны быть короткими, описательными и простыми для понимания. Например, команда установки npm короткая и простая для понимания. В идеале вы хотите, чтобы ваши команды были настолько простыми, чтобы пользователям даже не нужно было читать документацию, чтобы понять их.

Убедитесь, что ваш вывод легко читается

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

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

Обеспечить хорошие сообщения об ошибках

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

Чтобы писать хорошие сообщения об ошибках, нужно понимать, что пошло не так и почему. Получив эту информацию, вы можете создать сообщение, которое поможет вашим пользователям понять проблему и способы ее решения.

Сделайте ваши команды доступными для обнаружения

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

Лучший способ сделать ваши команды доступными для обнаружения — использовать согласованную схему именования. Например, все команды для управления пользователями могут начинаться с «user-». Или все команды для управления файлами могут начинаться с «file-».

Ваши пользователи также должны иметь возможность ввести «help», чтобы увидеть список всех доступных им команд. И каждая команда должна иметь свою собственную справочную документацию, к которой пользователи могут получить доступ, введя «help».

Заключение

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

Дальнейшее чтение:

  • clig.dev — Руководство по интерфейсу командной строки
  • primer — рекомендации по проектированию инструмента командной строки GitHub.
  • dev.to — 14 отличных советов по созданию потрясающих CLI-приложений
  • Исследование Лиран Тал — Node.js CLI Apps Best Practices
  • opensource.com — 3 шага для создания потрясающего UX в CLI-приложении
  • zapier.com — Лучшие практики создания CLI-инструмента для вашего сервиса
  • atlassian.com — 10 принципов дизайна для восхитительных интерфейсов командной строки
  • uxdesign.cc — Пользовательский опыт, интерфейсы командной строки и открытие мира
  • gnu.org — рекомендации POSIX
  • click — документация Python по кликам