Pull to refresh

Идеальная голосовалка

Reading time3 min
Views7.5K
Часто на разнообразных сайтах пользователям предлагают оценить (проголосовать за) тот или иной объект — анекдот, цитату, пост, автора, человека и т. д. При этом, к сожалению, почти всегда совершается одна или несколько ошибок.

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



Типичные ошибки



Шкала оценок



Часто предлагается поставить объекту оценку по какой-то шкале, например, от 1 до 5.

Это очень неудобно, потому что просто непонятно, какую оценку ставить — 3, 4 или 5? Человеку очень сложно выбрать. Преподавателей, например, специально длительное время обучают тому, как надо ставить оценки ученикам, на этот счёт существуют строгие формальные критерии и т. д.

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

Должны быть только два варианта ответа — «плюс» и «минус».

Неудобства интерфейса



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

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

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

Для голосования должны быть предусмотрены две кнопки («хорошо» и «плохо»), не находящиеся рядом.

Невозможность переголосовать



Если пользователь по ошибке нажал не на ту кнопку; поспешил с ответом; передумал — он должен иметь возможность переголосовать (если, конечно, итоги голосования ещё не подведены). Очень многие сайты не предоставляют такой возможности.

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

Закрытие голосования



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

Голосование для постоянно действующих объектов должно быть открыто, пока существует объект.

Накрутки



Не так уж редко в голосованиях нет никакой защиты от накруток. Принять какие-то меры действительно непросто: например, ограничение «один голос с одного IP-адреса» не учитывает пользователей сетей с одним внешним адресом; разрешение голосовать только зарегистрированным пользователям не всегда приемлемо и не застраховано от создания виртуалов. В то же время совсем никак не защищаться нельзя.

Отсутствие избирательного ценза



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

Неправильная обработка результатов



Это, пожалуй, едва ли не самая главная ошибка. Зная количество людей, проголосовавших «за», и количество людей, проголосовавших «против», нужно как-то на основании этих данных вычислить итоговую оценку (рейтинг) объекта.

Чаще всего встречается простое вычитание минусов из плюсов. Это очень, очень и очень плохое решение. Предположим, у нас есть две статьи; первая была оценена в 1000 плюсов и 500 минусов; вторая — 200 плюсов и всего 2 минуса. Очевидно, что вторая статья куда лучше; однако рейтинг первой составит 500, а второй — 198. Очевидно, что такой подход к обработке результатов неприемлем.

Для получения адекватного результата достаточно делить разность плюсов и минусов на их сумму (то есть общее количество голосов). В результате получим оценку от −1 до +1. Чтобы избежать деления на ноль, при отсутствии голосов оценку можно принимать нулевой.

Для новых объектов (например, за только что опубликованную статью проголосовало всего двое человек, и оба «за» — рейтинг выходит максимальным) нужно предусмотреть ценз: например, пока общее количество голосов не достигнет сотни, рейтинг делится на 20.

Идеальная голосовалка



Идеальная голосовалка — та, в которой отсутствуют перечисленные выше ошибки. Кнопок для голосования ровно две, они не стоят вплотную, можно переголосовать, голосование действует постоянно, от накруток защищено, неадекватные посетители отсеиваются, рейтинг вычисляется с учётом общего числа проголосовавших.
Tags:
Hubs:
+14
Comments71

Articles

Change theme settings