| [Юзабилити-блог] Навигация по большому массиву | Оценить ![]() ![]() ![]() ![]() ![]() ![]() |
| От: | Зверёк Харьковский | |
| Дата: | 25.09.05 07:57 | |
| Оценка: | 8 (1) | |
| Допустим, у нас есть база "чего-то". Скажем, книжек в библиотеке, файлов на компьютере, программ на сервере, музыки и фильмов... Нужно: обеспечить навигацию по этой базе (размер базы неограничен, но заведомо велик). Требования к навигации: * быстрый переход к точно известному объекту (я точно знаю, что это за файл и где он лежит) * удобный поиск к приблизительно известному объекту (старенькая песня группы Металлика) * предложение выбора, когда я точно не знаю, что мне нужно (а что у нас есть по C++?) Подходы бывают такими: 1. Плоский список (наивный подход) Просто список вообще всех объектов, какие у нас есть. Несмотря на наивность подхода, в сочетании с дополнительными графическими средствами (выделение элементов списка цветом, шрифтом, иконками) и гибкой сортировкой может быть достаточно удобен. 2. Иерархия Случай файловой системы. Папки, в каждой — другие папки и объекты. Система, в общем, общепринятая, но обладает некоторыми недостатками. * если папок немного (мы предполагаем, что объектов много), то в каждой из них находится большое количество объектов — возвращаемся к случаю (1) — найди свой файлик в папке где их 10 000. * если папок много — файлы по ним распределяются, как правило, неравномерно. Возникает множество случаев вроде
(Хотя уже внутри папки Scripting всего 8 вложенных файлов, для порядка у нее еще куча подпапок) * логика иерархии не всегда очевидна (потому как вышеозначенный Python вполне себе мог оказаться в Web-Design/Server/Languages или еще где) 3. Поиск Тоже понятная вещь — Гугль тебе в руки и электричку навстречу. Про достоинства и недостатки, думаю, все сами понимают. На мой вкус, поиск вещь для большой базы необходимая, но как единственный метод навигации, применяться не должен (пожалуйста, не приводите в опровержение Internet. А если приводите — пожалуйста, не пользуйтесь гиперссылками и закладками). 4. Ссылки Ссылки. Имеем кучу объектов и ссылки между ними. Метод поиска нужного — от объекта к объекту по ссылкам, пока не придем куда шли. Недостатки понятны: ссылки — вещь произвольная, длина и существование пути между двумя некоторыми объектами — величина случайная. 5. Отбор Изначально имеем список всех доступных в базе объектов, но используя различные критерии фильтрации, сужаем список, до объема в котором объект комфортно "найти глазами". Мой выбор: отбор + поиск (+ опционально ссылки). ЗЫ: на самом деле этот пост — естественно, о том, что отбор предпочтительней иерархии FAQ — це мiй ай-кью! | |