Pull to refresh
0

Как мы победили дерево категорий

Reading time5 min
Views4.9K
Вы наверняка сталкивались с таким элементом интерфейса. В местах продажи, на дискуссионных площадках, да практически повсеместно этот элемент встречается. Даже тут, на хабре, хабы в виде дерева.

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



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

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

Проблема эта выражена в разной мере, в зависимости от сценария. Например в интернет магазине не обязательно использовать дерево категорий, можно использовать поиск. Либо же вы попадаете на страницу искомого товара сразу из поисковой системы и с деревом категорий не сталкиваетесь вовсе.

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

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

С такой задачей столкнулись и мы. Фрилансеры, в большинстве своем, привыкают. А вот вновь пришедшие заказчики или заказчики, которые заказывают что-то новое сталкиваются с проблемой выбора в полный рост.

Глубина вложенности


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

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

Хотя и с тремя уровнями некоторые уживаются нормально:



Количество элементов


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

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

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

Сокращение количества элементов, конечно, упрощает поиск и уменьшает масштабы проблемы, но не решает ее полностью.

А вот так лучше не делать:



Организация списка


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

В форуме остался старый подход, там мало разделов:



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



Также важно сортировать категории по алфавиту. Это делают не все, к сожалению. В не отсортированном списке найти нужное можно только прочитав каждую строчку. А это боль.
Категории, содержащие несколько сущностей назывались через косую черту.

Было: Аудио/Видео/Мультимедиа, стало: Аудио, Видео и Мультимедиа. Чуть меньше режет глаз. Кто нибудь еще говорит “мультимедиа”?

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

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



Нет дерева — нет проблем! Первый подход к снаряду


Если заказчику не предлагать выбрать категорию, не заставлять его искать нужную, то и проблемы нет, верно? Так мы и поступили. Перестали требовать указывать категорию и по умолчанию категорию указывал модератор при проверке заказа.

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

С этим есть проблема — обеспечить модерацию 24/7 мы пока не можем и с этим нужно было что-то делать. В выходные дни и ночью заказчику все же приходилось указывать категорию самостоятельно. Тогда мы могли автоматически пропускать заказы от надежных заказчиков и проверять их уже после публикации.

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

Слава роботам!




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

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

Так как не всегда возможно наверняка определить куда относится заказ, в случае неудачи мы предлагаем заказчику указать категорию самому. Ну и конечно, если заказчик хочет руками, то можно и руками.

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

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

Совсем исключить человека из цепочки пока не получается, присматривать приходится, но одно дело всю работу возлагать на человека (заказчика или модератора), а другое дело, когда вкалывают роботы, а не человек

Tags:
Hubs:
Total votes 5: ↑5 and ↓0+5
Comments27

Articles

Information

Website
www.weblancer.net
Registered
Founded
Employees
2–10 employees
Location
Украина