Предлагаю собрать в этой дискуссии примеры приложений (частей приложений, отдельных функций) с хорошей usability. Думаю, может получиться поучительная gallery.
Здравствуйте, Glenn, Вы писали:
G>Предлагаю собрать в этой дискуссии примеры приложений (частей приложений, отдельных функций) с хорошей usability. Думаю, может получиться поучительная gallery.
Самое удобное в управлении приложение, которое я когда либо видел, с учетом сложности его функционала — Adobe After Effects. Интерфейс и элементы управления продуманы до мелочей, до клика. Только подумаешь, а хорошо бы чтобы тут было сделано так..., а оно бац... и работает именно так, как ты еще даже подумать не успел.
Здравствуйте, Dennis Zhuravlev a.k.a. Crane, Вы писали:
DZA>Самое удобное в управлении приложение, которое я когда либо видел, с учетом сложности его функционала — Adobe After Effects. Интерфейс и элементы управления продуманы до мелочей, до клика. Только подумаешь, а хорошо бы чтобы тут было сделано так..., а оно бац... и работает именно так, как ты еще даже подумать не успел.
Не соглашусь . А если точнее, то это спорный вопрос. У AE изначально кривоватое и негибкое "ядро" или, я бы сказал, "философия". В рамках этой философии UI продуман хорошо, не спорю. Как и у большинства адобовских продуктов. Только сама "философия" заставляет некоторые вещи делать совершенно "через Альпы" или никак (т.е. вручную, громоздко). Но да, пользуясь при этом тщательно продуманной и реализованной системой кликов, хоткеев и проч.
Здесь мы приходим к большому философскому вопросу: что такое юзабилити? Связь с функциональностью, архитектурой, предлагаемыми/навязываемыми workflow...
Только должен отметить, что я работал с версиями AE с 3.0 до 7.0, не позднее. Но делал действительно сложные проекты. Может, последнее время что-то изменилось. С 3.0 до 7.0 "философия" в основе не менялась, что было печально, т.к. мне было с чем сравнивать, и AE я всегда считал в целом слабоватым софтом, хотя и очень удобным, почти идеальным, для несложных проектов.
---
Из известных я бы похвалил Студию 98.
В профессиональных графических софтах много примеров отличных интерфейсов в целом и очень много отдельных интересных находок. С большой любовью вспоминаю линейку PowerAnimattor — Studio ныне фирмы Autodesk. Там такое количество удобнейших находок, что я даже хотел тиснуть сюда, на rsdn, что-то вроде статейки про него и некоторые др. граф. софты. Например, в нем 90% работы-текучки удобно и естественно делались с помощью mouse gestures в комбинации с нажатыми Alt, Shift, Ctrl, еще в середине 90-х.
Maya кое-что от него взяла и добавила своего. Например, меня радует хоткей "повторить предыдущую команду", который просто делает ненужным назначение и запоминание множества прочих хоткеев.
Меню у них устроено интересно. Если надо повторить предыдущую команду из меню, просто дабл-кликаещь на корневой пункт, не надо ползать по иерархии. Ф-я из меню может быть вызвана с настройками параметров — тогда кликаешь по маленькому квадратику в пункте. А если устраивают текущие параметры — то просто по самому пункту. Очень удобный подход к морю команд, каждая со своими опциями.
Использование одной кнопки для разных ф-й. Краткое нажатие на пробел — мини-/максимизируется окно View. Более длительное нажатие на пробел (< полсекунды) — вылезает ветвистое полупрозрачное спецменю. Все это — органично, не перепутаешь, хотя и то, и другое — нажатием на одну и ту же кнопку. Такая интересная мелочь.
Здравствуйте, mymuss, Вы писали:
M>Здравствуйте, Glenn, Вы писали:
G>>Начну с приложения http://www.terragalleria.com — удобная в пользовании фотогалерея.
M>Кстати, а чем она Вам понравилась? ИМХО весьма неудобно.
Здравствуйте, Glenn, Вы писали:
G>Кто ещё что предложит?
Командная строка юникса (bash/zsh) как пример отлично продуманной плагинной архитектуры, со всеми его плагинами grep, uniq, sort, wc, perl, awk, sed, cut, paste и т.д.
Скорость работы с ней колоссальная (в рамках задач, естественно).
Здравствуйте, Real 3L0, Вы писали:
R3>Здравствуйте, jazzer, Вы писали:
J>>Скорость работы с ней колоссальная (в рамках задач, естественно).
R3>Спорно. Если одна и таже функция есть в виде команды и в виде приложения (которое всегда поставляется с ОС), то я быстрее найду её во втором случае.
Не понял, если честно.
Ты запускаешь команды точно так же, как приложения, тут ничего не зависит от того, встроенная это команда или приложение.
А насчет искать — что имеется в виду? Тебе надо только знать имя, ты его и пишешь в командной строке, и опять же пофиг, это команда или приложение
Здравствуйте, jazzer, Вы писали:
J>Ты запускаешь команды точно так же, как приложения, тут ничего не зависит от того, встроенная это команда или приложение. J>А насчет искать — что имеется в виду? Тебе надо только знать имя, ты его и пишешь в командной строке, и опять же пофиг, это команда или приложение
Чтобы выполнить функцию с помошью команды, я должен помнить точное название системной команды. Например, функции "очистить экран" соответствует "cls" (или как там её) и только "cls". Никаких "clearscr" или "clscreen". Чтобы узнать эту команду, мне надо воспользоваться поиском по хэлпу.
Чтобы выполнить функцию с помощью приложения, мне надо примерно (!) представлять, где она должна находится. Например, функция "получить IP" находится примерно там, где сеть. И таким "примерным" маршрутом я достигну цели. Хэлпом, скорей всего, пользоваться и не придётся.
А если функция содержит параметры (например, надо отформатировать на фат32 или нтфс), то ... в общем, ничего похожего.
Вселенная бесконечна как вширь, так и вглубь.
Re: Примеры приложений с хорошей usability
От:
Аноним
Дата:
29.03.12 23:30
Оценка:
Здравствуйте, Glenn, Вы писали:
G>Предлагаю собрать в этой дискуссии примеры приложений (частей приложений, отдельных функций) с хорошей usability. Думаю, может получиться поучительная gallery.
G>Начну с приложения http://www.terragalleria.com — удобная в пользовании фотогалерея.
G>Кто ещё что предложит?
Здравствуйте, Real 3L0, Вы писали: R3>Здравствуйте, jazzer, Вы писали: J>>Ты запускаешь команды точно так же, как приложения, тут ничего не зависит от того, встроенная это команда или приложение. J>>А насчет искать — что имеется в виду? Тебе надо только знать имя, ты его и пишешь в командной строке, и опять же пофиг, это команда или приложение R3>Чтобы выполнить функцию с помошью команды, я должен помнить точное название системной команды. Например, функции "очистить экран" соответствует "cls" (или как там её) и только "cls". Никаких "clearscr" или "clscreen". Чтобы узнать эту команду, мне надо воспользоваться поиском по хэлпу.
Ну да, есть команда apropos, ищет по описаниям:
Причем эта команда просто осуществляет поиск в файле whatis, так что ты можешь тм искать сам или парсить вывод команды и фильтровать далее.
Например, насчет твоего вопроса о форматировании диска — такой вот запрос мне выдает 25 наименований, приведу наиболее инересные:
> apropos file | grep -Ei 'system' | grep -Ei 'create|build|format|make' | grep -v '(3'
fio-format (8) - Performs a low-level, file-system format of the board
fstab (5) - static information about the filesystems
genisoimage (1) - create ISO9660/Joliet/HFS filesystem with optional Rock Ridge attributes
mformat (1) - add an MSDOS filesystem to a low-level formatted floppy disk
mkdosfs (8) - create an MS-DOS file system under Linux
mke2fs (8) - create an ext2/ext3/ext4 filesystem
mke2fs [mkfs] (8) - create an ext2/ext3/ext4 filesystem
mkfs (8) - build a Linux file system
mkudffs (8) - create an UDF filesystem
nfs (5) - fstab format and options for the nfs and nfs4 file systems
proc (5) - process information pseudo-file system
quotacheck (8) - scan a filesystem for disk usage, create, check and repair quota files
sysfs (2) - get file system type information
Это я еще тут исключил показ функций сишного API, связанного с файловыми системами, это еще 26 наименований.
Ну и иерархическая интерактивная система помощи есть прямо в терминале, называется (сюрприз) info, но такая есть и в винде.
В общем-то, в винде я тоже всегда поиском пользуюсь, чтоб найти нужную команду, но в винде это работает только со встроенными программами, а не с любыми, которые ты установишь. R3>Чтобы выполнить функцию с помощью приложения, мне надо примерно (!) представлять, где она должна находится. Например, функция "получить IP" находится примерно там, где сеть. И таким "примерным" маршрутом я достигну цели. Хэлпом, скорей всего, пользоваться и не придётся.
> apropos "IP address"
arpaname (1) - translate IP addresses to the corresponding ARPA names
doveadm-kick (1) - Disconnect users by user name and/or IP address
gethostip (1) - convert an IP address into various formats
ipcalc (1) - perform simple manipulation of IP addresses
resolveip (1) - resolve host name to IP address or vice versa
R3>А если функция содержит параметры (например, надо отформатировать на фат32 или нтфс), то ... в общем, ничего похожего.
а где это не так? Если тебе надо знать параметры конкретной команды, то и в винде, и в юниксе придется лазить по хелпам, только вот в юниксе поиск не в пример удобнее (для того, кто знает регэкспы)
Эту аргументацию еще как-то можно приложить к в системным утилитам, типа разбитая на группы Control Panel (которая в таком виде появилась не так давно, к слову, а изначально была одноуровневаая свалка), но дополнительные программы, которые ты устанавливаешь, если ты не делаешь специальных усилий, опять же валятся в одноуровневый список в папке Programs.
Т.е. если ты установил какой-нть ftp server — я не знаю, где ты ее будешь искать "примерно там, где сеть" — так как сама прога установится в корень Program Files, а ярлык будет лежать опять же в корне Start Menu.
Плюс командная строка — это ж не только системные предустановленные утилиты (aka Control Panel), это центр запуска всего, что есть вообще, во всех возможных сочетанияъ.
А так как всё, что устанавливается в юниксе, должно прописаться в хелпах (man/whatis) — то у тебя автоматически появляется доступ ко всему, что установлено. Например (почистил от ненужного):
> apropos browser
elinks (1) - lynx-like alternative character mode WWW browser
firefox (1) - a Web browser for X11 derived from the Mozilla browser
lynx (1) - a general purpose distributed information browser for the World Wide Web
даже firefox прописался, как видишь.
Аналогично прописывается девелоперская документация, например, запрос "apropos eigenvalue" мне выдает 232 функции (покажу парочку):
Скрытый текст
> apropos eigenvalue
ZSTEDC [zstedc] (l) - computes all eigenvalues and, optionally, eigenvectors of a symmetric tridiagonal matrix using the divide and conquer method
ZSTEGR [zstegr] (l) - computes selected eigenvalues and, optionally, eigenvectors of a real symmetric tridiagonal matrix T
ZSTEIN [zstein] (l) - computes the eigenvectors of a real symmetric tridiagonal matrix T corresponding to specified eigenvalues, using inverse iteration
ZTGSEN [ztgsen] (l) - reorders the generalized Schur decomposition of a complex matrix pair (A, B) (in terms of an unitary equivalence trans- formation Q(aq * (A, B) * Z), so that a selected cluster of eigenvalues appears in the leading diagonal blocks of the pair (A, B)
ZHSEQR [zhseqr] (l) - ZHSEQR compute the eigenvalues of a Hessenberg matrix H and, optionally, the matrices T and Z from the Schur decomposition H = Z T Z**H, where T is an upper triangular matrix (the Schur form), and Z is the unitary matrix of Schur vectors
ZHGEQZ [zhgeqz] (l) - computes the eigenvalues of a complex matrix pair (H, T),
Здравствуйте, jazzer, Вы писали:
J>Ну да, есть команда apropos, ищет по описаниям:
Да, что-то в этом есть.
R3>>А если функция содержит параметры (например, надо отформатировать на фат32 или нтфс), то ... в общем, ничего похожего. J>а где это не так? Если тебе надо знать параметры конкретной команды, то и в винде, и в юниксе придется лазить по хелпам, только вот в юниксе поиск не в пример удобнее (для того, кто знает регэкспы)
Извини, не написал сразу. Под приложениями я понимал приложения с гуем, а под функциями — действие человека.
Когда выполняешь функцию форматирования, то параметры указываешь мышкой.
J>Эту аргументацию еще как-то можно приложить к в системным утилитам, типа разбитая на группы Control Panel (которая в таком виде появилась не так давно, к слову, а изначально была одноуровневаая свалка), но дополнительные программы, которые ты устанавливаешь, если ты не делаешь специальных усилий, опять же валятся в одноуровневый список в папке Programs. J>Т.е. если ты установил какой-нть ftp server — я не знаю, где ты ее будешь искать "примерно там, где сеть" — так как сама прога установится в корень Program Files, а ярлык будет лежать опять же в корне Start Menu.
Да, это сейчас сделанно несовершенно. В винде начали налегать на поиск. Теоретически, можно было бы добавить группы программ. Например, сейчас в Windows Phone 7 приложения устанавливаются в одно место, а игры — в другое. Пользователь в выборе этих мест не участвует, но и где что искать вопросов не возникает.
Здравствуйте, Real 3L0, Вы писали:
R3>>>А если функция содержит параметры (например, надо отформатировать на фат32 или нтфс), то ... в общем, ничего похожего. J>>а где это не так? Если тебе надо знать параметры конкретной команды, то и в винде, и в юниксе придется лазить по хелпам, только вот в юниксе поиск не в пример удобнее (для того, кто знает регэкспы)
R3>Извини, не написал сразу. Под приложениями я понимал приложения с гуем, а под функциями — действие человека. R3>Когда выполняешь функцию форматирования, то параметры указываешь мышкой.
Тогда это немножко другой разговор. Тут я согласен, для однократного(!) использования тыканье мышкой удобнее.
А вот если ты купил несколько винтов и хочешь их единообразно разбить и отформатировать — тут уже неимоверно рулит интерфейс командной строки, потому что буквально одну букву меняешь, а все остальное остается тем же. Плюс такие текстовые команды элементарно организуются в скрипт (т.е. разбить, отформатировать, скопировать из разных мест то, что нужно, именно в этом порядке), который ты запускаешь и идешь спать, а наутро уже все готово.
А мышкой надо сидеть и ждать, пока отыграет одна стадия, прежде чем кликать, чтоб запустить следующую.
Но я на самом деле говорил не о том, что лучше — возня мышиный гуй или километровые опции в командной строке.
Я говорил о самой командной строке, в которой все происходит, и архитектуре конвейеров и прочего перенаправления потоков, процессов и т.д. и т.п.
Эта аръитектура в сочетании с кучей поддерживающих ее программ типа того же перла делают среду крайне удобной и гибкой для работы.
Например, есть команда diff file1 file2, которая показывает разницу между файлами.
Но если это файлы логов, в них есть таймстэмпы, которые, естественно, будут разными для разных запусков, и все строчки будут различаться.
Простейшее решение — вычистить все таймстэмпы, заменив их все на одинкковое слово TIMESTAMP каким-нть перлом типа:
можно добавить еще преобразований и собрать все это в скрипт filter, который будет приводить файл к удобному для сравнения виду.
Итак, нужно прогнать оба файла через этот скрипт и сохранить результат в новые файлы, а потом просто сравнить эти два файла. А потом удалить эти два файла. Не очень весело звучит, да? Так вот благодаря редиректам можно обойтись без этих временных файлов:
diff <(filter file1) <(filter file2)
Аналогично, если нужно достать какую-то информацию из, скажем, csv-файлов, то народ обычно загружает их в Эксель и начинает там уже с ним бороться.
Это не говоря о тормознутости Экселя при работе с большими файлами и огрнаичении на количество строк, благодаря которым многие файлы заргузить целиком просто невозможно. так вот пока коллеги сражаются с экселем, я обычно минут за 5 с помощью grep/awk/perl/cut/paste/sort получаю все необходимые данные.
ЗЫ У меня даже есть библиотечка скриптов для функционального программирования (конкретно — частичное применение) в баше
Здравствуйте, Real 3L0, Вы писали:
R3>Чтобы выполнить функцию с помошью команды, я должен помнить точное название системной команды. Например, функции "очистить экран" соответствует "cls" (или как там её) и только "cls". Никаких "clearscr" или "clscreen". Чтобы узнать эту команду, мне надо воспользоваться поиском по хэлпу. R3>Чтобы выполнить функцию с помощью приложения, мне надо примерно (!) представлять, где она должна находится. Например, функция "получить IP" находится примерно там, где сеть. И таким "примерным" маршрутом я достигну цели. Хэлпом, скорей всего, пользоваться и не придётся. R3>А если функция содержит параметры (например, надо отформатировать на фат32 или нтфс), то ... в общем, ничего похожего.
Discoverability или интуитивность не эквивалентна usability. Настоящая usability начисается, когда 90% самых частых команд заучены до уровня рефлексов.
Здравствуйте, Centaur, Вы писали:
C>Discoverability или интуитивность не эквивалентна usability. Настоящая usability начисается, когда 90% самых частых команд заучены до уровня рефлексов.
usability — это удобство использования. Если команды заучены до рефлексов, то они не становятся удобными.
Здравствуйте, jazzer, Вы писали:
J>Тогда это немножко другой разговор. Тут я согласен, для однократного(!) использования тыканье мышкой удобнее.
Ну, я как раз отказался от Убунты из-за неоднократного использования одних и тех же функций. Просто потому, что сначала я не думал, что команды надо запоминать. Потом не думал, что "этот бессмысленный набор букв" можно запомнить. Потом вроде начал запоминать, но через некоторое время опять забывал. Потом ... плюнул и удалил Убунту.
J>А вот если ты купил несколько винтов и хочешь их единообразно разбить и отформатировать — тут уже неимоверно рулит интерфейс командной строки, потому что буквально одну букву меняешь, а все остальное остается тем же. Плюс такие текстовые команды элементарно организуются в скрипт (т.е. разбить, отформатировать, скопировать из разных мест то, что нужно, именно в этом порядке), который ты запускаешь и идешь спать, а наутро уже все готово. J>А мышкой надо сидеть и ждать, пока отыграет одна стадия, прежде чем кликать, чтоб запустить следующую.
Это функции админа. Я, как пользователь, хочу программу, которая сама всё сделает так, как ты описываешь, но без всякого "кодирования" и ожидания. Поэтому использую Партишен Менеджер.
J>Но я на самом деле говорил не о том, что лучше — возня мышиный гуй или километровые опции в командной строке. J>Я говорил о самой командной строке, в которой все происходит, и архитектуре конвейеров и прочего перенаправления потоков, процессов и т.д. и т.п. J>Эта аръитектура в сочетании с кучей поддерживающих ее программ типа того же перла делают среду крайне удобной и гибкой для работы.
Соглашусь, но удобной только для тех, кто "в теме".
Здравствуйте, Real 3L0, Вы писали:
R3> Потом ... плюнул и удалил Убунту.
Ну поскольку я не первый десяток лет в юниксе сижу, то для меня это как второй язык
R3>Это функции админа. Я, как пользователь, хочу программу, которая сама всё сделает так, как ты описываешь, но без всякого "кодирования" и ожидания.
А админ что, не пользователь, что ли? Вроде разговор идет о примерах юзабилити, а не о примерах юзабилити "но чтоб только не для админов".
R3>Поэтому использую Партишен Менеджер.
Маздай.
Я вот экспериментировал с разными разбиениями свежекупленного диска под виндой (чтоб не было проблем с Advanced Format) — так проклял всё с этим мышиным интерфейсом, потому что чтоб повторить настройку (с какого сектора разбивать и какого размера кластером форматировать), нужно раз десять кликнуть мышой в разные окошки и кнопки ОК на диалогах (модальных, само собой) и после каждого клика несколько секунд еще подождать, пока команда отработает.
Была бы командная строка — проблем бы не было: поменял одну букву/цифру и перезапустил.
R3>Соглашусь, но удобной только для тех, кто "в теме".
Ну да, но и разговор а юзабилити. Кто сказал, что всё должно быть юзабельно для всех