Статьи

Это может показаться сумасшедшей идеей

Встройте командную строку в ваш следующий интерфейс.

Некоторые из вас, технари, могут читать это и думать: «Да! Я постоянно работаю в командной строке на своем компьютере». Что ж, я не думаю о вас как о своей целевой аудитории. Я говорю больше о приложениях, используемых обычными людьми за пределами ИТ-индустрии.

Выслушайте меня.

Эта концепция поразила меня несколько лет назад, когда я работал над системой управления контентом. Моя команда сделала такой новенький, блестящий графический интерфейс с базой данных для управления контентом учебного материала. Графический интерфейс был довольно большим, с главным экраном и множеством диалоговых окон для управления ресурсами системы. Ряд команд по всей компании использовали систему достаточно эффективно. Но потом нам потребовалось внедрить новую команду, привыкшую к существующей системе, которая использовала локальную систему управления исходным кодом, редактор XML и командную строку. Нужно было вводить команды, чтобы, например, извлечь тему учебного материла, открыть тему в редакторе или просмотреть историю управления версиями.

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

Мне потребовалось всего несколько минут, когда я сидел с писателем из этой команды, чтобы полностью понять их проблемы.

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

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

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

Авиакомпании

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

Если вы когда-либо путешествовали воздушным транспортом в Северной Америке, возможно, вы видели, как представитель клиентской службы авиакомпании за стойкой регистрации использует Sabre. Теперь подумайте об этом — этот человек использовал мышь и щелкал по экрану? Нет, он использовал клавиатуру, печатал, как сумасшедший, и очень эффективно получал данные и информацию, необходимые ему, чтобы помочь решить ваш вопрос.

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

Вот пример. На приведенном ниже экране показана следующая команда:

12NOVCLEMCO07A

Скриншот текстового интерфейса Sabre.

Если вы разобьете ее на части, вы увидите, что это — команда запроса, для поиска рейсов 12 ноября из Кливленда (CLE) в Орландо (MCO). (Я не уверен, что представляет собой 07А, но я бы рискнул предположить, что это означает поиск рейсов, вылетающих около 7 утра).

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

Графический интерфейс поиска полетов.

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

Лошади

Другой пример о менее технически подготовленной группе пользователей: секретари соревнования по конному спорту. Я уже несколько лет участвую в соревнованиях по конному спорту — в управлении, соревновании и судействе. Будучи «одним из этих айтишников», меня всегда интересовало программное обеспечение, используемое в офисе соревнования. Я видел некоторые системы, которые, как я думал, были очень неинтуитивными для начинающего пользователя, но я приписываю это своему критическому взгляду при использовании любого программного продукта.

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

Типичная ситуация — наездник входит в офис соревнования и говорит что-то вроде: «Мой тренер сказал мне добавить класс 126, и он начнется через 20 минут!» Секретарь соревнований рассказывает наезднику, как заполнить форму «Записи/Снятия с соревнования»: наездник записывает регистрационный номер своей лошади, номер класса и обводит слово «Запись (на соревнование)». Точно так же, чтобы удалить класс, он использует ту же форму, заполняет ту же информацию, но обводит слово «Снятие с соревнования». Наездник бросает форму в корзину, выходит из офиса, садится на лошадь и надеется, что секретарь обработает запрос до начала соревнований.

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

Если он занят чем-то другим в системе, вы можете представить, что ему придется выполнить несколько шагов, чтобы закрыть текущие диалоговые окна, а затем найти экран, где он может добавить лошадь на соревнование. Но что, если бы секретарь соревнований мог с помощью сочетания клавиш вызвать командную строку и просто ввести «> добавить 57 126» и нажать клавишу Enter?В этом случае команда приведет к тому, что лошадь с номером 57 будет добавлена к классу 126. Удалить заявку может быть также просто «> отменить 57 126»

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

Скриншот графического интерфейса под Windows показывает лошадей, наездников и классы.

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

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

  • Является ли эта функция часто-используемой?
  • Достаточно ли небольшого количества данных, чтобы выполнить задачу?

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

Скриншот графического интерфейса, а именно формы с большим количеством полей для добавления лошади.

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

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

> см класс 175

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

Скриншот графического интерфейса листа оценки для отдельной лошади.

Кажется, я не одинок в своем размышлении. Для всех целей и задач на панели ленты в приложениях Office 2016 появилась командная строка. Команда Office назвала эту функцию «Что вы хотите сделать?». Эта функция описана в этом блоге:

«Что вы хотите сделать?» — это совершенно новый способ найти нужные команды. Просто введите то, что вы хотите сделать в поле «Что вы хотите сделать?» в верхней части Word, PowerPoint, Excel и Outlook, и вы получите набор результатов, которые позволят вам предпринять необходимые действия.

В любом приложении Office 2016 вы нажимаете Alt-Q, чтобы курсор оказался в поле «Что вы хотите сделать?». После использования этой новой функции вы увидите, что на самом деле она является навороченной командной строкой, но выполняет основную цель — обеспечивает быстрый доступ к определенным функциям.

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