Когда я должен добавить графический интерфейс?

Я пишу много сценариев дома и на работе. В большинстве случаев сценарии используются всего несколько раз для выполнения выбранной задачи, а затем больше никогда не используются. Однако иногда я пишу скрипт, чтобы сделать что-то более сложное, требующее ввода пользователя. Именно в этот момент я обычно мучаюсь над тем, реализовать ли графический интерфейс или придерживаться интерфейса командной строки с помощью y / n, нажатия 1-10 и т. Д. Этот тип интерфейса может стать утомительным в использовании и сложным в обслуживании.

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

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


person Jeremy Mack    schedule 01.02.2009    source источник
comment
Спасибо за ссылку на shoooes.net . Выглядит интересно!!   -  person Niyaz    schedule 01.02.2009


Ответы (7)


Как и во многих вопросах этого типа, ответ заключается в том, что это зависит.

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

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

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

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

Вот и все.

person Niyaz    schedule 01.02.2009
comment
Что касается вашего последнего пункта, это не всегда так. В зависимости от того, является ли клиент клиентом или сотрудником. Если инструмент достаточно прост, командная строка может использоваться коллегой. - person he_the_great; 01.02.2009

Это не отвечает на ваш вопрос, но FWIW промежуточным шагом между пользовательским интерфейсом и командной строкой является наличие файла конфигурации вместо пользовательского интерфейса:

  1. Отредактируйте файл конфигурации
  2. Запустить программу

Формат конфигурационного файла при необходимости может быть усложнен и хорошо прокомментирован.

person ChrisW    schedule 01.02.2009

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

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

person Dave Markle    schedule 01.02.2009

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

person ISW    schedule 01.02.2009

Если вам нужны только некоторые «диалоги» для улучшения ваших сценариев, вы можете использовать KDE Kdialog или Gnome Zenity.

person sebthebert    schedule 01.02.2009

Я не могу сосчитать, сколько раз я писал то, что, как я думал, будет «одноразовым», и оно становилось более полезным, чем я думал, и заканчивалось тем, что я писал для него графический интерфейс, или мне нужно вернуться к использовать программу несколько месяцев спустя. Преимущество графического интерфейса заключается в том, что он упрощает запоминание того, что в противном случае, вероятно, было бы аргументами командной строки. т.е. для флагов и параметров вы можете просто использовать флажки, поля со списком, переключатели и имена файлов селекторов файлов. Я использую Borland C++ RAD, поэтому довольно быстро и легко собрать простое (или даже не очень простое) диалоговое окно. Теперь я часто начинаю с создания графического интерфейса.

person Roger Nelson    schedule 01.02.2009

Если вы используете Linux, попробуйте Zenity. Это простой в использовании инструмент для создания графического интерфейса для программ командной строки.

person mdm    schedule 02.02.2009