Внешний сервис голосования aka like-dislike feature
Добрый день, Хабрасообщество! В процессе реализации одного моего проекта (с блекджеком и всеми остальными social прелестями), пришлось реализовывать функциональность голосования (like, like/dislike, rating, etc) пользователей за некоторые сущности предметной области проекта. Disclaimer: к моему величайшему сожалению далее будут лишь рассуждения о функциях некоторого абстрактного внешнего сервиса голосовалок и ни строки кода или полезных ссылок, но мне нужно получить обратную связь знающих людей. Поискав в Google готовые решения, не удалось найти ничего подходящего. В основном решения (плагины для различных web-фреймворков) сводятся к добавлению дополнительных полей в существующие таблицы (или объекты коллекций в случае MongoDB), в которые пишется количество лайков/дислайков, а также кто из пользователей уже проголосовал. Такие решения имеют значительные недостатки, так как с одной стороны не обладают достаточной гибкостью, позволяющей легко модифицировать алгоритмы голосования (что очень важно для нового проекта в процессе поиска правильной модели), а с другой стороны требуют модификации существующего кода и, что еще хуже, уровня хранения данных, для добавления функциональности голосования. Читать дальше →